1.冒泡排序
示例:
5,9,14,6,3
第一次遍历:5,9,6,3,14 5和9相比,不换;9和14相比,不换;14和6相比,换;14和3相比,换;第一次遍历找出第一大的数放后面。
第二次遍历:5,6,3,9,14 5和9相比,不换;9和6相比,换;9和3相比,换;第二次找出第二大的数。
第三次遍历:5,3,6,9,14 5和6相比,不换;6和3相比,换;第三大的数6。
第四次遍历:3,5,6,9,14 剩下两个比较得到整个排好序的数组
// 冒泡排序 public void bubbleSort(int[] array){ for(int i=0;i<array.length-1;i++){ #为了提高效率,可以替换成(int i=array.length-1;i>0;i--)
for (int j = 0; j <array.length-1 ; j++) {
if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
int [] array=new int[]{5,9,14,6,3};
user.bubbleSort(array);
for(int num:array){
System.out.print(num);
}
2.选择排序
示例:
5,9,14,6,3
这种比较是最前边的一个开始和后边剩下的逐个比较,若后面的大,则不用换位置,小的就换到最前边
第一次遍历:3,9,14,6,5 先是第一个位置与其他位置比较 5<9,不换,5<14,不换,5<6,不换,5>3,换,最小的就出来了
第二次遍历:3,5,14,9,6 第二个位置上与其他位置比较 9<14,不换, 9>6,换, 6>5,换 , 5 第二小
第三次遍历:3,5,6,14,9 第三个位置与其他位置比较 14>9,换, 9>6,换,6 第三小
第四次遍历:3,5,6,9,14 剩下两个比较得出整个排序的数组
不过下面的每次都逐个遍历,速度有些慢
// 选择排序 public void selectSort(int[] array){ for (int i = 0; i <array.length-1 ; i++) { int min=i; for (int j = i+1; j <array.length-1 ; j++) { if(array[min]>array[j]){ min=j; } } if(min>i){ int temp=array[i]; array[i]=array[min]; array[min]=temp; } } }
int [] array=new int[]{5,9,14,6,3};
user.selectSort(array);
for(int num:array)
{
System.out.println(num);
}