首页 技术 正文
技术 2022年11月9日
0 收藏 707 点赞 2,752 浏览 1613 个字
public static void main(String[] args) {
/**
* 冒泡排序
* 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位置,如果他一直大则冒泡的最后一位
* 1、除了最后一位,前面的数都需要进行冒泡
* 2、第一轮,第一个数进行冒泡,和其后的数进行比较
* 3、第二轮,新序列的第一个数进行冒泡
*/ int[] ary=new int[]{90,50,40,60,55};
//外层循环控制有多少个数需要比较的轮数,最原始最后一位数不需要冒泡,数组长度减一
for (int i=1;i<ary.length;i++){
//内层循环控制每个轮次的第一个数比较换位的过程
for (int j=0;j<ary.length-1;j++){
//如果这个轮次的第一个数大于其后的数就一直换位,直到比他大的数出现,不换位了,新的序列生成
if (ary[j]>ary[j+1]){
int tmp;
tmp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=tmp;
}
}
}
//foreach()遍历输出
for (int i:ary){
System.out.print(i+"\t");
}
}
运行结果:
用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)
 public static void main(String[] args) {
/**
* 选择排序
* 思路:从剩余数组中选择最小的数并获取它的的下标,然后把最小的数与剩余数组的第一个数进行交换位置
*/ int[] ary=new int[]{90,50,40,60,55};
//外层循环表示从剩余数组寻找最小值的轮数,数组长度为5的话,寻找4轮
for (int i=0;i<ary.length-1;i++){
//假定的最小值的下标,第一轮为ary[0],每次为剩余数组的第一个数
int minindex=i;
//j=i表示从剩余数组中查找最小数的下标
for (int j=i;j<ary.length;j++){
//如果假定的最小值大于其后的数,则更换下标
if (ary[minindex]>ary[j]){
minindex=j;
}
}
if (ary[i]!=ary[minindex]){
int tmp;
tmp=ary[i];
ary[i]=ary[minindex];
ary[minindex]=tmp;
}
}
//foreach()遍历输出
for (int a:ary){
System.out.print(a+"\t");
}
}
运行结果:用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)
    public static void main(String[] args) {
/**
* 插入排序
* 思路:第一轮,先把第一个数当成一个有序数组,把剩余的数从第一个开始逐个往假定的有序数组中插入,插入后还是有序的,
*/
int[] ary=new int[]{50,30,40,10,20};
//错误思路
// for (int i=1;i<5;i++){
// for (int j=0;j<i;j++){
// if (ary[j]>ary[i]){
// int t;
// t=ary[j];
// ary[j]=ary[i];
// ary[i]=t;
// }
// }
// }
for (int i=1;i<5;i++){
int tmp=ary[i];
int j;
//i代表假定的有序数组的长度,i-1代表有序数组的最后一位的下标
for ( j=i-1;j>=0;j--){
//如果有序数组中的数大于待插入的数,则此数和其后的数都向后移动一位
if (ary[j]>tmp){
ary[j+1]=ary[j];
}else{
break;
}
}
//循环结束后,插入待插入的数,这个时候j的值是-1或者是有序数组中比待插入数小的数的下标,不加1的话会插错位置,所以j要加1
ary[j+1]=tmp;
} //使用Arrays工具类对数组排序
Arrays.sort(ary);
//foreach()遍历输出
for(int a:ary){
System.out.print(a+"\t");
}
}
运行结果:
用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)
 

    					
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290