ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

冒泡排序

2021-07-22 10:04:31  阅读:161  来源: 互联网

标签:外层 int 冒泡排序 放在 循环 比较


冒泡排序

  • 如果遇到相等的值不进行交换,那么可以说这种排序方式是稳定的

  • 冒泡排序原理:依次比较相邻的两个数,将值大的元素交换到右边

  • 比较小的放在前面,大的数放后面

    • 思路

      • 依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。

      • (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。

      • (2)比较第2和第3个数,将小数 放在前面,大数放在后面。

      • (3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成

      • (4)在上面一趟比较完成后,最后一个数一定是数组中最大的一个数,所以在比较第二趟的时候,最后一个数是不参加比较的。

      • (5)在第二趟比较完成后,倒数第二个数也一定是数组中倒数第二大数,所以在第三趟的比较中,最后两个数是不参与比较的。

      • (6)依次类推,每一趟比较次数减少依次

      • 外层循环是数值总个数需要的比较次数,内层循环是依次将前后数值进行比较

    • 代码一

    • void bubblesort(int a[] ,int n){
          for(int i=1;i<n;i++){
              for(int j=0;j<n-i;j++){
                  if(a[j]<a[j+1]){
                  int temp = a[j];
                  a[j]=a[j+1];
                  a[j+1]=temp;
                  }
              }
          }
          for(int i=0;i<n;i++){
          cout << a[i];
          }
      }
    • 外层循环锁定数组中的一个数值,内层循环遍历数组与外层循环值进行比较,比外层循环数值小的就交换到外层循环锁定的值的下标处,一次循环可以锁定一个最小值,然后就不用管最小值所在下标。外层循环加1,内层循环跟着外层循环转变,继续比较再次找出一个剩余数最小值,然后就可以完成冒泡排序

      代码二

    • void bubblesort(int a[] ,int n){
          for(int i=0;i<n;i++){
              for(int j=i;j<n;j++){
                  if(a[j]<a[i]){
                  int temp = a[j];
                  a[j]=a[i];
                  a[i]=temp;
                  }
              }
          }
          for(int i =0;i<n;i++){
          cout <<a[i];
          }
      }

标签:外层,int,冒泡排序,放在,循环,比较
来源: https://www.cnblogs.com/popzj-1/p/15042766.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有