【大话数据结构C语言】65 简单选择排序

举报
CodeAllen 发表于 2021/10/29 22:24:57 2021/10/29
【摘要】 选择排序的基本思想是每一次记录中选取关键字最小的记录作为有序序列的第i个元素    从代码上看,时间复杂度和冒泡一样都是n的平方( 所以用到它的时候,数据规模越小越好),但是实际处理次数还是少很多的,选择排序的效率更高些   #include <stdio.h> void Selec...

选择排序的基本思想是每一次记录中选取关键字最小的记录作为有序序列的第i个元素 

 

从代码上看,时间复杂度和冒泡一样都是n的平方( 所以用到它的时候,数据规模越小越好),但是实际处理次数还是少很多的,选择排序的效率更高些

 


  
  1. #include <stdio.h>
  2. void SelectSort(int k[], int n)
  3. {
  4. int i, j, min, temp, count1=0, count2=0;
  5. for( i=0; i < n-1; i++ )
  6. {
  7. min = i;
  8. for( j=i+1; j < n; j++ )
  9. {
  10. count1++;
  11. if( k[j] < k[min] )
  12. {
  13. min = j;
  14. }
  15. }
  16. if( min != i )
  17. {
  18. count2++;
  19. temp = k[min];
  20. k[min] = k[i];
  21. k[i] = temp;
  22. }
  23. }
  24. printf("总共进行了%d次比较,进行了%d次移动!", count1, count2);
  25. }
  26. int main()
  27. {
  28. int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
  29. SelectSort(a, 10);
  30. printf("排序后的结果是:");
  31. for( i=0; i < 10; i++ )
  32. {
  33. printf("%d", a[i]);
  34. }
  35. printf("\n\n");
  36. return 0;
  37. }

 

文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。

原文链接:allen5g.blog.csdn.net/article/details/117172150

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。