/// <summary> /// 簡單選擇排序 /// 給定數組:int[] arr={裏面n個數據}; /// 第1趟排序,在待排序數據arr[1]~arr[n]中選出最小的數據,將它與arrr[1]交換; /// 第2趟,在待排序數據arr[2]~arr[n]中選出最小的數據,將它與r[2]交換; /// 以此類推,第i趟在待排序數據arr[i]~arr[n]中選出最小的數據,將它與r[i]交換,直到所有排序完成。 /// </summary> /// <param name="arry"></param> public static void EasySelectSort(int[] arry) { for (int i = 0; i < arry.Length-1; i++) { int k = i;//標記最小的數字的索引 for ( int j = k+1; j < arry.Length-1; j++) { if(arry[j]<arry[k])//找到最小的數據 { k = j; } } //內層循環結束找到最小的數字 if(k!=i) { Swap(arry, k, i); } } }
時間複雜度:n^2數組