一、选择排序
// 1-选择排序 ASC升序 从小到大
// 第一位与后面所有的比较,比第一位小则将它放在第一位 第一位即最小的
// 第二位与后面所有的比较,比第二位小则将它放在第二位
// 以此类推,直至排序完成
// 也可DESC降序 从大到小
int[] a = {10,15,33,9,22,18,90,3,7};
System.out.println("选择排序-排序前:");
for(int i=0; i<a.length;i++)
System.out.print(a[i] + " ");
System.out.println();
// 选择排序
int temp = 0;
for(int i=0; i<a.length;i++){
for(int j=i+1;j<a.length;j++){ // 后一位开始比较
if(a[i]>a[j]){ // 如果后面的小,交换
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
System.out.println("选择排序-排序后:");
for(int i=0; i<a.length;i++)
System.out.print(a[i] + " ");
System.out.println();
运行结果:
二、冒泡排序
// 2-冒泡排序
// 将相邻的2个数依次比较,较大的放在后面,最后的即为最大的
// 继续进行比较,交换,排除最后1位 ----每次比较后,后面的都是大的数,并可以减少1位进行比较
// 以此类推,直至排序完成
// 也可从大到小降序
int[] b = {23,19,7,15,35,10,44,76,1};
System.out.println("冒泡排序-排序前:");
for(int i=0; i<b.length;i++)
System.out.print(b[i] + " ");
System.out.println();
// 冒泡排序
int t = 0;
for(int i=0;i<b.length;i++){
for(int j=0;j<b.length-1-i;j++){ // 注意比较条件 防止数组越界
if(b[j]>b[j+1]){ // 相邻2位进行比较
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}
}
System.out.println("冒泡排序-排序后:");
for(int i=0; i<b.length;i++)
System.out.print(b[i] + " ");
System.out.println();
运行结果:
三、练习
// 3-练习
int[] ArrayT = new int[5];
// 3-1 随机数数组
System.out.println("生成随机数数组如下:");
for(int i=0; i<ArrayT.length; i++){
ArrayT[i] = (int) (Math.random()*100);
System.out.print(ArrayT[i] + " ");
}
System.out.println();
// 3-2 选择排序 从小到大 正排序
int x = 0;
for(int i=0; i<ArrayT.length; i++){
for(int j=i+1; j<ArrayT.length; j++){
if(ArrayT[i] > ArrayT[j]){ // 从小到大
x = ArrayT[i];
ArrayT[i] = ArrayT[j];
ArrayT[j] = x;
}
}
}
System.out.println("随机数组-选择排序-排序后:");
for(int i=0; i<ArrayT.length;i++)
System.out.print(ArrayT[i] + " ");
System.out.println();
// 3-3 冒泡排序 从大到小 倒排序
int m = 0;
for(int i=0; i<ArrayT.length; i++){
for(int j=0; j<ArrayT.length-1-i; j++){
if(ArrayT[j] < ArrayT[j+1]){ // 从大到小
m = ArrayT[j];
ArrayT[j] = ArrayT[j+1];
ArrayT[j+1] = m;
}
}
}
System.out.println("随机数组-冒泡排序-排序后:");
for(int i=0; i<ArrayT.length;i++)
System.out.print(ArrayT[i] + " ");
System.out.println();
运行结果:
我的学习源泉:https://how2j.cn/k/array/array-sort/282.html?p=114999