冒泡排序算法由一个什么循环控制?

互联网 19-4-10
本篇文章主要给大家介绍冒泡排序由一个什么循环控制的,那么冒泡排序算法可以由双层for循环实现,也可以由单个for循环实现。下面我们就结合具体的代码示例,给大家介绍冒泡排序的实现方法!

一、什么叫冒泡排序法?

比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置,然后继续往下找

二、两种冒泡排序法步骤:

对下列数组进行排序:(22,3,6,54,86,21,35,1,65,4)

1.普通的冒泡排序法:

实现步骤:

1:双层for循环嵌套;

2.判断条件如果满足,交换两数位置;

public class BubbleSort {     public static void main(String[] args) {                  int a[]={22,3,6,54,86,21,35,1,65,4};                  for(int i= 0 ;i<a.length;i++){    //第一层循环             for(int j=0;j<a.length-i-1;j++){    //第二层循环                 if(a[j]>a[j+1]){                                     //交换位置                     int tem =a[j];                     a[j]=a[j+1];                     a[j+1]=tem;                 }             }         }         System.out.println("排好序:");         for(int aa:a){             System.out.print(aa+" ");         }     } }

结果展示:

2.单个for循环实现冒泡排序法:

a.)定义待排序数组及数组相关长度

int a[]={22,3,6,54,86,21,35,1,65,4};   int team=a.length-1;

b.)排序实现:

1.单个for循环;

2. 判断是否应该交换位置;

for(int i= 0 ;i<team;i++){         if(a[i]>a[i+1]){         int tem =a[i];         a[i]=a[i+1];         a[i+1]=tem;         } }

3. 判断该趟for循环是否结束;

4. 若该趟for循环结束将给i赋值-1,并且将team的长度减1,继续下趟循环;

if(i==team-1){             i=-1;             team--; }

c.)完整程序:

//单个for循环的冒泡排序法 public class BubbleSort {     public static void main(String[] args) {              int a[]={22,3,6,54,86,21,35,1,65,4};     int team=a.length-1;     for(int i= 0 ;i<team;i++){         if(a[i]>a[i+1]){         int tem =a[i];         a[i]=a[i+1];         a[i+1]=tem;         }         if(i==team-1){             i=-1;             team--;         }     }     System.out.println("排好序:");     for(int aa:a){         System.out.print(aa+" ");     }     } }

结果展示:

本文来自PHP中文网,更多相关知识点请前往PHP中文网视频课程频道!

以上就是冒泡排序算法由一个什么循环控制?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:spring mvc的流程是什么?

相关资讯