排序算法 - 选择排序

选择排序思想:

从数组中找出第一名位置,在整体中找到最小的元素,然后与第一名交换位置,接下来在剩下的元素中,找到最小的元素,与第二名交换位置,以此类推

时间复杂度为O^n2

#include <iostream>
using namespace std;

template<typename T> //模板函数/泛型
void selectionSort(T arr[],int n){
    for(int i = 0; i<n; i++){
        // 寻找[i,n)区间里的最小值
        int minIndex = i;
        for(int j=i+1 ; j < n;j++)
            if(arr[j] <arr[minIndex])
                minIndex = j;
        swap(arr[i],arr[minIndex]);
        
    }
}

int main(){
    int a[10] = {10,9,8,7,6,5,4,3,2,1};
    selectionSort(a,10);
    for(int i=0;i<10;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

另外VScode中强烈推荐Code runner这个插件,直接右键即可自动编译输出 

posted @ 2020-03-26 13:07  Erick-LONG  阅读(116)  评论(0编辑  收藏  举报