排序演算法之——簡單選擇排序
阿新 • • 發佈:2021-02-04
技術標籤:leetcode刷題筆記資料結構與演算法排序演算法c++
選擇排序
簡單選擇排序的一種選擇排序的方法。
給定一個數組array[]={2,4,6,1,3},對它進行升序排序。
簡單選擇排序簡介
簡單選擇排序的方法就是每次在待排序的陣列中選到最小的那個數,把它放到陣列中的前面。
原陣列{2,4,6,1,3}
- 將陣列中的第一個數2與陣列中的其他元素進行比較,發現最小的數是1,因此將1與2的位置進行變換,得到陣列[1,4,6,2,3]。
- 將陣列中的第2個元素4與陣列中的其他元素進行比較,得到最小的數是2,將2與4的位置進行互換,得到陣列[1,2
- …以此迴圈
- 最終的陣列為[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;
}