当前位置:   article > 正文

c语言排序算法_排序算法代码(C语言实现)

c语言中桶排序法

冒泡排序

基本思想:

每次比较相邻元素,如果他们的顺序错误就把他们交换过来;

#include

c34f48d3b5cda27236781ed0133ce444.png
冒泡排序运行结果

快速排序

基本思想:

从数列中挑出一个元素,称为基准,重新排列数组,所有比基准值小的元素摆放在基准值前面,所有比基准值大的放在基准值后面(相同的数可以放到任意一边)。

  1. #include<stdio.h>
  2. #define N 10
  3. int p[101];
  4. void quick_sort(int left,int right);
  5. int main()
  6. {
  7. int i,j;
  8. printf("please enter ten numbers:n");
  9. for(i=1;i<=N;i++)
  10. {
  11. scanf("%d",&p[i]);
  12. }
  13. quick_sort(1,N);
  14. printf("The correct order isn");
  15. for(i=1;i<=N;i++)
  16. {
  17. printf("%d ",p[i]);
  18. }
  19. return 0;
  20. }
  21. void quick_sort(int left,int right)
  22. {
  23. int i,j,t,temp;
  24. if(left>right)
  25. return;
  26. temp=p[left];
  27. i=left;
  28. j=right;
  29. while(i!=j)
  30. {
  31. while(i<j && p[j]>=temp)
  32. j--;
  33. while(i<j && p[i]<=temp)
  34. i++;
  35. if(i<j)
  36. {
  37. t=p[i];
  38. p[i]=p[j];
  39. p[j]=t;
  40. }
  41. }
  42. p[left]=p[i];
  43. p[i]=temp;
  44. quick_sort(left,i-1);
  45. quick_sort(j+1,right);
  46. }

c5950c404ca74db4ad2ba10fa671db4f.png
快速排序运行结果

选择排序

基本思想:

每一次从待排序的数据元素选出最大(或最小)的一个元素,存放到序列的起始位置,直到全部待排序的数据元素排完。

  1. #include<stdio.h>
  2. #define N 10
  3. int main()
  4. {
  5. int p[N];
  6. int i,j,t;
  7. printf("please enter ten numbers:n");
  8. for(i=0;i<N;i++)
  9. {
  10. scanf("%d",&p[i]);
  11. }
  12. for(i=0;i<N;i++)
  13. {
  14. for(j=i+1;j<N;j++)
  15. {
  16. if(p[i]>p[j])
  17. {
  18. t=p[i];
  19. p[i]=p[j];
  20. p[j]=t;
  21. }
  22. }
  23. }
  24. printf("The correct order is:n");
  25. for(i=0;i<N;i++)
  26. {
  27. printf("%d ",p[i]);
  28. }
  29. return 0;
  30. }

313a4aec4eb706b6e7a4204f519664eb.png
选择排序运行结果

桶排序

基本思想:

将数组的元素分布到多个桶中,然后每个桶单独排序。

  1. #include<stdio.h>
  2. #define N 10
  3. int main()
  4. {
  5. int p[21];
  6. int i,t,j;
  7. for(i=0;i<21;i++)
  8. {
  9. p[i]=0;
  10. }
  11. printf("please enter ten numbers:n");
  12. for(i=0;i<N;i++)
  13. {
  14. scanf("%d",&t);
  15. p[t]++;
  16. }
  17. printf("The correct order is:n");
  18. for(i=0;i<21;i++)
  19. {
  20. for(j=1;j<=p[i];j++)
  21. {
  22. printf("%d ",i);
  23. }
  24. }
  25. return 0;
  26. }

927cd8ae83ba4fce8962aaf92891aa7c.png
桶排序运行结果
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/658227
推荐阅读
相关标签
  

闽ICP备14008679号