哪个循环控制冒泡排序算法?
最编程
2024-04-19 08:25:23
...
本篇文章主要给大家介绍冒泡排序由一个什么循环控制的,那么冒泡排序算法可以由双层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+" "); } } }
登录后复制
结果展示:
双层for循环实现冒泡排序法
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+" "); } } }
登录后复制
结果展示:
单个for循环实现冒泡排序
本文来自PHP中文网,更多相关知识点请前往PHP中文网视频课程频道!
以上就是冒泡排序算法由一个什么循环控制?的详细内容,更多请关注php中文网其它相关文章!
上一篇: 排序 (i) 气泡排序
推荐阅读
-
简单而经典:Java 冒泡排序算法详解
-
什么是冒泡算法?详细解释排序冒泡的原理?用 C 语言实现冒泡算法。
-
经典排序算法和 python 详情(II):冒泡排序、双向冒泡排序、插入排序和希尔排序
-
python 冒泡排序算法代码_python 用冒泡方法对 10 个数字排序
-
数据结构与算法(III)--简单排序算法[冒泡、选择、插入排序算法]
-
Java 中的经典算法冒泡排序(Bubble Sort)
-
气泡排序(超级详细)--升序",从小到大;另一种是 "降序",从大到小。该主题可抽象为 "按升序对 n 个数字排序 "的一般形式。 排序是一种重要的基本算法。排序的方法有很多种,但在本题中我们将使用冒泡排序法。 冒泡法的基本思想 冒泡法的基本思想是,每次比较相邻的两个数字时,较小的那个会被移到前面。如果有 5 个数字9,8,5,2,0,第一次将前两个数字 8 和 9 互换。第二次将第二个和第三个数字(9 和 5)对调......这样一共对调 4 次,得到 8-5-2-0-9 的顺序,可以看到:最大的数字 9 一直在 "下沉",成为最下面的一个数字,而小的数字 "上升" 最小的数字 "上升"。最小的数字 0 已经向上 "浮 "了一个位置。经过第一次比较(共 4 次比较和交换),得到了最大的数字 9。 然后进行第二趟比较,对剩下的前 4 个数字(8、5、2、0)进行新一轮比较,这样第二个最大的数字就 "沉到了底部"。同样,按照上述方法进行第二轮比较。经过 3 次比较和交换,我们得到了第二大数 8。 按照这个规律,我们可以推断出,比较 5 个数字需要 4 次旅行,才能将 5 个数字从小到大排列起来。在第一次旅行中,两个数字之间进行了 4 次比较,在第二次旅行中,进行了 3 次比较......在第四次旅行中,只进行了一次比较。 思路总结 总结:如果有 n 个数字,那么要进行 n-1 次比较。在第一次行程中进行 n-1 次比较,在第 i 次行程中进行 n-i 次比较。
-
C 语言版冒泡排序算法详解 - 三、C 程序的冒泡排序算法
-
c++ 排序算法 - 冒泡排序(不懂必读,超级详细)
-
JAVA 冒泡排序算法(包括详细的过程代码解释和优化)"推荐收藏"。