思路:
初步**
public class myselectionsort ;
selectionsort(arr);
system.out.println(arrays.tostring(arr));
}public static void selectionsort(int arr)
}swap(arr,i,min);}}
public static void swap(int arr,int i,int j)
}
複雜度分析:
不穩定分析:假如陣列為找到最小元素1和第乙個2交換,就不穩定了
優化:選擇排序一次只能確定乙個元素的位置,而優化的選擇排序一次可以確定兩個元素的位置,即最小值的位置和最大值的位置,這樣可以節省一半的時間
**如下:
public static void selectionsort(int arr)
if(arr[j] > arr[max])
}if(max != arr.length - i - 1)
if(min == arr.length - i - 1)
if(min != i)}}
詳解這段**:
if(max != arr.length - i - 1)
if(min == arr.length - i - 1)
if(min != i)
例子:
最小元素的下標:min = 4 最大元素的小標 :max = 3;
七大排序演算法 選擇排序及優化
在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換 第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。時間複雜度o n 2 不穩定的排序 void selects...
七大排序演算法 插入排序及其優化
思路 初步 public static void insertsort int arr else arr j 1 tmp 將tmp放到 小於或等於tmp這個元素的後乙個位置 public static void swap int arr,int i,int j 複雜度分析 優化 二分查詢該元素要插入...
七大排序演算法之選擇排序
和氣泡排序一樣,這個也是簡單而必須掌握的基礎排序演算法。遍歷陣列每個元素,若為公升序,則尋找最小的數與第乙個數交換,一趟排序結束後,最小的數字於陣列第乙個位置,然後在2 n個數中,尋找最小的元素放在第二個位置,往復下去,排序結束。固定 n n public class selectsort syst...