1. 程式人生 > 其它 >排序演算法之——簡單選擇排序

排序演算法之——簡單選擇排序

技術標籤:leetcode刷題筆記資料結構與演算法排序演算法c++

選擇排序


簡單選擇排序的一種選擇排序的方法。
給定一個數組array[]={2,4,6,1,3},對它進行升序排序。

簡單選擇排序簡介

簡單選擇排序的方法就是每次在待排序的陣列中選到最小的那個數,把它放到陣列中的前面。

原陣列{2,4,6,1,3}

  1. 將陣列中的第一個數2與陣列中的其他元素進行比較,發現最小的數是1,因此將1與2的位置進行變換,得到陣列[1,4,6,2,3]。
  2. 將陣列中的第2個元素4與陣列中的其他元素進行比較,得到最小的數是2,將2與4的位置進行互換,得到陣列[1,2
    ,6,4,3]。
  3. …以此迴圈
  4. 最終的陣列為[1,2,3,4,6]。

簡單選擇排序演算法的效能:

在這裡插入圖片描述

簡單選擇排序程式碼(c++)

#include <iostream>
#include <vector>
 
using namespace std;

int main()
{
	int arr[]={ 6, 4, 8, 9, 2, 3, 1 };
	int len=sizeof(arr) / sizeof(arr[0]);

    cout << "排序前" << endl;
    for (int i = 0; i < len;
i++){ cout << arr[i] << " "; } cout << endl; for(int i=0;i<len;i++) { int min=arr[i]; int mid_index=i; for(int j=i+1;j<len;j++) { if(min>arr[j]) { min=arr[j]; mid_index=j; } } arr[mid_index]=arr[i]
; arr[i]=min; } cout << "排序後" << endl; for (int i = 0; i < len; i++){ cout << arr[i] << " "; } cout << endl; }