選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是:第一次從待排序的數(shù)據(jù)元素中選出最?。ɑ蜃畲螅┑囊粋€元素,存放在序列的起始位置,然后再從剩余的未排序元素中尋找到最?。ù螅┰?,然后放到已排序的序列的末尾。以此類推,直到全部待排序的數(shù)據(jù)元素的個數(shù)為零。選擇排序是不穩(wěn)定的排序方法。
#include<iostream>
#include<algorithm>
using namespace std;
void selectSort(int arr[] ,int n){
????????for(int i=0;i<n;i++){
????????//尋找[i,n)區(qū)間里的最小值
????????int minIndex = i;?
????????for(int j=i+1;j<n;j++)
????????{
????????????????if(arr[j]<arr[minIndex])
? ? ? ? ? ? ? ? {
????????????????????????????minIndex = j;//更新索引
? ? ? ? ? ? ? ? ? }
????????}
????????//找到最小位置的索引,然后交換最小位置的數(shù)和當前的位置的數(shù)
????????swap(arr[i],arr[minIndex]);
}