排序 選擇排序的優化和實現

2021-08-11 15:31:40 字數 846 閱讀 7402

選擇排序的思想很簡便,排序過程也很直觀。選擇排序是一種不穩定的排序演算法。

每一次迴圈調出來乙個最大的或者最小的元素放在整個陣列的最前面或者最後面即可完成整個排序。

我們知道,按照選擇排序的思想,每次遍歷都會選擇出來乙個最大(或者最小)的元素放在陣列的一端,那麼我們可以這麼思考一下:

我們為什麼不能在遍歷出來一段空間內的乙個最大(或者最小)的元素的同時辨別出來另外乙個最小(或者最大)的元素呢?

實現起來也很簡單,定義乙個最大和最小的下標,遍歷到的時候進行替換即可完成任務。

如上便是選擇排序優化思想。

#include 

using

namespace

std;

void sort(int* arr,int len)

if (min != i)

}}

}int main()

; //int arr = ;

//int arr = ;

//int arr = ;

int len = sizeof(arr) / sizeof(arr[0]);

//hashsort(arr);

sort2(arr, len);

for (size_t i = 0; i < len; i++)

cout

<< arr[i] << " ";

cout

<< endl;

return

0;}

氣泡排序和選擇排序優化版

沒按方法來寫 主要是思想 用 來交換陣列更好 x x y y x y x x y 冒泡 public class bubblesort 六個數 只需五次大迴圈 確定五個數的排序 for int i 0 i arr.length 1 i system.out.println arrays.tostri...

選擇排序 優化

定義 它的工作原理是每一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。步驟假設我們拿到的起始位置的數值是最小的 拿起始位置的值與後面所有數值進行比較 選擇數值比較小的數值的角標與臨時變數裡存放的角標進行交換 確定第乙個有序值 i 要排第幾個 ...

選擇排序優化

未優化前package sort 選擇排序 public class selection sort 1 long s system.currenttimemillis selection sort a long e system.currenttimemillis s system.out.prin...