排序算法—简单选择排序

x33g5p2x  于2021-09-19 转载在 其他  
字(0.5k)|赞(0)|评价(0)|浏览(447)

算法稳定性:不稳定

复杂度分析:

  • 空间复杂度:O(1)
  • 时间复杂度:O(n^2)

实现代码:

  1. #include<iostream>
  2. using namespace std;
  3. //简单选择排序
  4. void SelectSort(int *nums,int n){
  5. for(int i=0;i<n-1;i++){
  6. int minn=i;
  7. for(int j=i+1;j<n;j++){ //每次找到i下标之后最小的元素的下标,然后交换下标为i处的元素和i之后最小元素的值
  8. if(nums[j]<nums[minn])
  9. minn=j;
  10. }
  11. swap(nums[i],nums[minn]);
  12. }
  13. }
  14. int main(){
  15. int n;
  16. cin>>n;
  17. int nums[n];
  18. for(int i=0;i<n;i++)
  19. cin>>nums[i];
  20. SelectSort(nums,n); //简单选择排序
  21. cout<<"排序之后的序列为:";
  22. for(int i=0;i<n;i++)
  23. cout<<nums[i]<<" ";
  24. return 0;
  25. }

运行结果:

在这里插入图片描述

相关文章