当前位置:   article > 正文

数组之冒泡排序--c语言_c语言数组冒泡排序代码

c语言数组冒泡排序代码

小伙伴们大家好 这次给大家分享 如何使用数组来实现冒泡排序

初学c语言的同学们一定会遇到这样的问题 在刚初学时难免会被难倒,希望看过这篇文章之后,可以对冒泡排序有一个更加深入的了解 完全的掌握

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int arr[5] = { 1,3,5,2,4 };//定义一个整型数组,存放五个整型数据
  5. int i = 0;
  6. int j = 0;
  7. for (i = 0; i < 4; i++)
  8. {
  9. //趟数由i决定
  10. for (j = 0; j < 5-1-i; j++)
  11. {
  12. //j控制的是需要交换比较的数的多少
  13. if (arr[j] > arr[j + 1])//利用if语句来判断相邻两元素之间的大小
  14. {
  15. int tmp = arr[j+1];//创建临时变量,用来储存数据
  16. arr[j + 1] = arr[j];
  17. arr[j] = tmp;
  18. }
  19. }
  20. }
  21. for (i = 0; i < 5; i++)//利用for循环将数组进行打印
  22. {
  23. printf("%d ", arr[i]);
  24. }
  25. return 0;
  26. }

首先冒泡排序的思想:两两相邻元素进行比较大小,有可能进行数据交换

话不多说上图来看

首先,对‘9’这个字符进行排序,按照升序,他已经到达自己应该待的位置

然后会得到一组新的元素,之后再进行一次新的排序

每次搞定一个数字,使它到达最终应该存在的位置,我们将此称为 一趟冒泡排序

这里需要注意一个很重要的点:因为交换比较大小是对两个数,所以例如我们有10个数字的话,只需要9趟便可以完成排列,同理 如果有n个数字,则需要n-1趟排列

另外 还有一个需要注意的点 这段代码

for循环中的第二条语句需要理解到位,即5个数字,需要交换排列四次即可完成排列,但是每当经过一次循环后,一个数字已经到达了他应该达到的位置,所以下次排列时无需再进行多余的一次排列,所以j控制的时需要交换比较的数的多少,需要用j-1-i;

好了,以上就是本次分享的内容,希望大家看完后会有收获,如果有什么疑问,欢迎在评论区留言或者私信我

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/824329
推荐阅读
相关标签
  

闽ICP备14008679号