选择排序有三类:直接选择排序 锦标赛排序 堆排序
直接选择排序 时间复杂度为O(n方) 不稳定
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 void Selectsort(int (&a)[5],int left,int right){ 2 for(int i=left;i<right;i++){//要确定的下标位置 3 int k=i;//标记最小值的位置 4 for(int j=i+1;j<=right;j++){ 5 if(a[j]<a[k]) k=j; 6 } 7 if(k!=i) {//交换 8 int temp=a[k]; 9 a[k]=a[i]; 10 a[i]=temp; 11 } 12 } 13 }
锦标赛排序 时间复杂度为O(n*logn) 胜者树是一颗完全二叉树
堆排序