冒泡排序是一种简单的交换排序,基本思路是: 从数列左边开始扫描排序的元素,在扫描过程中一次对相邻元素进行比较,将较大的元素后移(这是从小到大的排序), 每经过一轮的比较,最大的元素将移到末尾,此时几下元素位置,下一轮只需要比较到此位置即可 (int j=0;j<array.length-i-1;j++)这样就能让每一轮的比较少比一个元素。
从大到小只需要改变if语句里面的交换即可,这里可以有许多改法,其实排序是一种思路, 比如我们下面的代码是写的从小到大,我们现在如果要变成从大到小,我们只需要将最后输出的时候,从最后一个元素开始输出 就能变成从大到小,下面的代码我会写出来。
package Chapter5;
?
public class NumberSort {
public static void main(String agrs[]){
int[] array={0,4,3,7,1,9,2,6,5,8};
System.out.print("数组排序前的顺序为:");
for(int i=0;i<array.length;i++){ //输出数组中的每一个元素
System.out.print(array[i]+" ");
}
int temp; //存储交换的变量值
for(int i=0;i<array.length-1;i++){ //比较n-1轮
for(int j=0;j<array.length-i-1;j++){ //每轮比较
if(array[j]>array[j+1]){ //从小到大的算法
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println();
System.out.print("数组排序后的顺序为:"); //输出数组中的每个元素(从小到大)
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
/*System.out.print("数组排序后的顺序为:"); //输出数组中的每个元素(从大到小)
for(int i=array.length-1;i>=0;i--){ //i=array.length-1这里减一是因为array.length==10,而数组是0~9
System.out.print(array[i]+" ");
}*/
}
}
?
原文:https://www.cnblogs.com/zhangzhangbuhuixiedaima/p/14695987.html