论选择排序和冒泡排序
一直以来老是容易把选择排序和冒泡排序混淆,这次通过debug跟踪程序总算是弄明白两者之间的差别了。先说说选择排序和冒泡排序最主要的区别。最主要的就一点,选择排序是在每次排序的时候找出最小(或最大)的那个元素,然后与假定的那个元素交换位置,但是在找出那个元素之前是不交换位置的。而冒泡排序是在每次排序的时候通过交换下一个元素的位置来找出最小(或最大)的那个元素,并同时安排好这个元素的位置。关键代码差别:
? ?选择排序:
?
public static void bubbleSort(int array[]){for(int i=0;i<array.length-1;i++){for(int j=0;j<array.length-i-1;j++){if(array[j]>array[j+1]){int temp=array[j];array[j]=array[j+1];array[j+1]=temp;}}}}选择排序和冒泡排序在代码上有个很大的区别,就是在交换数据的时候,选择排序是在第一层for循环,而冒泡排序是在第二层for循环。