选择排序:
通俗理解:把数组中的最小值直接与第一个值交换位置,以此类推,这样的排序叫选择排序;
画图理解:如图所示,指针i和j指向第一个地址,k指向i,随着j往后移动,如果遇到比第i个小的,那么指针k就指向j,然后j继续往后移,直到找到最小的那一个k,然后交换k与i指针指向的值,这就找到了一个数组中最小的数直接与第一个数做交换。
上代码:
1 package simpleSort; 2 3 /** 4 * 是直接选择排序,直接交换数组中的最小值与第一个值; 5 * @author caizhou 6 * 7 */ 8 public class xuanze { 9 10 public void sort(long[] arr){ 11 12 for(int i = 0 ; i<arr.length-1 ; i++){ 13 int k = i; 14 for (int j =i ; j<arr.length ; j++){ 15 if(arr[j] < arr[k]){ 16 k = j; 17 } 18 } 19 long tem = arr[i]; 20 arr[i] = arr[k]; 21 arr[k] = tem; 22 } 23 } 24 }
到此选择排序讲完了,拜拜。