kubeadm安裝kubernetes叢集
阿新 • • 發佈:2020-12-24
選擇排序演算法
選擇排序的思想分析及圖解…
選擇排序:(時間複雜度)(穩定性)
演算法思想:
記錄待排序陣列的第一個元素值和其索引,向後遍歷判斷他是不是最小值(最大值)
如果不是,則更新最小值和其所在位置索引
遍歷結束後,若索引更新,則交換首元素與更新後索引位置的值
接下來的待排序陣列為除開第一個元素,剩下的陣列,按上述相同方法選擇出 後替換
直至待排陣列大小為一,結束
選擇排序動態演示:
程式碼:
#include<iostream>
#include<vector>
using namespace std;
//選擇排序定義
void select_sort(vector<int> &arr)
{
//計算元素個數
int len = arr.size();
for (int i = 0; i < len - 1; ++i)
{
//記錄最小值和其索引
int min = arr[i];
int index = i;
for (int j = i + 1; j < len; ++j)
{
//判斷最小,並更新最小值和其索引
if (arr[j] < min)
{
min = arr[j];
index = j;
}
}
//當索引改變
//替換
if (index != i)
{
arr[index] = arr[i];
arr[i] = min;
}
}
}
int main()
{
//簡單測試
vector<int> arr = { 8,5,9,6,4,5 };
cout << "排序前:";
for (auto a : arr)
cout << a << " ";
select_sort(arr);
cout << "排序後:" ;
for (auto a:arr)
cout << a << " ";
return 0;
}
點個贊吧!!