C语言 实现两种排序方法

举报
陈言必行 发表于 2021/08/13 23:11:42 2021/08/13
【摘要】 头文件: 函数原型: void sortA1(int a[], int length); //选择排序void sortA2(int a[], int length); //冒泡排序void printA1(int a[], int length); //遍历数组 实现函数:void sortA1(int a[], int length){ int...
头文件:

函数原型:

   
  1. void sortA1(int a[], int length); //选择排序
  2. void sortA2(int a[], int length); //冒泡排序
  3. void printA1(int a[], int length); //遍历数组
  4. 实现函数:
  5. void sortA1(int a[], int length){
  6. int i, j, temp;
  7. for(i = 0; i <length; ++i){
  8. for(j = i + 1; j < length; ++j){
  9. if(a[j]< a[i]){ //如果后一个元素小于前一个元素则交换
  10. temp = a[i];
  11. a[i] = a[j];
  12. a[j] = temp;
  13. }
  14. }
  15. }
  16. }
  17. void printA1(int a[], int length){
  18. int i;
  19. for(i = 0; i <length; ++i){
  20. printf("%d,", a[i]);
  21. }
  22. printf("\n");
  23. }
  24. void sortA2(int a[], int length){
  25. int i, j, temp;
  26. for(i = 0; i <length; ++i){
  27. for(j = length - 1; j > i; --j){
  28. if(a[j]> a[j - 1]){
  29. temp = a[j];
  30. a[j] = a[j - 1];
  31. a[j - 1] = temp;
  32. }
  33. }
  34. }
  35. }
  36. 测试:
  37. void main(){
  38. int length = 0;
  39. int a[] = {12, 43, 8, 50, 100, 52,0};
  40. length = sizeof(a) / sizeof(a[0]);
  41. printf("排序前\n");
  42. printA1(a, length);
  43. sortA1(a, length);
  44. printf("选择排序后\n");
  45. printA1(a, length);
  46. sortA2(a, length);
  47. printf("冒泡排序后\n");
  48. printA1(a, length);
  49. system("pause");
  50. }
  51. 函数原型:
  52. void sortA1(int a[], int length); //选择排序
  53. void sortA2(int a[], int length); //冒泡排序
  54. void printA1(int a[], int length); //遍历数组
  55. 实现函数:
  56. void sortA1(int a[], int length){
  57. int i, j, temp;
  58. for(i = 0; i <length; ++i){
  59. for(j = i + 1; j < length; ++j){
  60. if(a[j]< a[i]){ //如果后一个元素小于前一个元素则交换
  61. temp = a[i];
  62. a[i] = a[j];
  63. a[j] = temp;
  64. }
  65. }
  66. }
  67. }
  68. void printA1(int a[], int length){
  69. int i;
  70. for(i = 0; i <length; ++i){
  71. printf("%d,", a[i]);
  72. }
  73. printf("\n");
  74. }
  75. void sortA2(int a[], int length){
  76. int i, j, temp;
  77. for(i = 0; i <length; ++i){
  78. for(j = length - 1; j > i; --j){
  79. if(a[j]> a[j - 1]){
  80. temp = a[j];
  81. a[j] = a[j - 1];
  82. a[j - 1] = temp;
  83. }
  84. }
  85. }
  86. }
  87. 测试:
  88. void main(){
  89. int length = 0;
  90. int a[] = {12, 43, 8, 50, 100, 52,0};
  91. length = sizeof(a) / sizeof(a[0]);
  92. printf("排序前\n");
  93. printA1(a, length);
  94. sortA1(a, length);
  95. printf("选择排序后\n");
  96. printA1(a, length);
  97. sortA2(a, length);
  98. printf("冒泡排序后\n");
  99. printA1(a, length);
  100. system("pause");
  101. }


文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/76162447

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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