七大排序演算法 選擇排序及其優化

2021-09-25 14:35:39 字數 889 閱讀 7111

思路:

初步**

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...