冒泡排序 例题:给出一组数将这组数按从小到大的顺序输出出来

偏执的太偏执、 2022-02-02 06:47 243阅读 0赞

冒泡排序 例题:给出一组数将这组数按从小到大的顺序输出出来

学习笔记,方便自己日后复习,也可供大家参考学习

冒泡排序百度上是这样定义的:
冒泡排序:它重复的走访过要排序的元素列,依次比较两个相邻元素,如果他们的顺序(如从大到小,首字母从A到Z)错误就把他们交换过来,走访元素的工作是重复的进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来越大的元素会经由交换慢慢”浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中的二氧化碳气泡最终会上浮到顶端一样,故名冒泡排序。
原理:每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后
思路:每一轮比较相邻两数,第一轮比较出最大数将最大数放在最后面,然后按照相同的方法第二轮比较出剩下的数中最大数,将这次比较出来的数也放在最后边(由于上一轮比较出来的最大数不参与比较,所以不作数),以此类推,开始比较第三轮、第四轮… 直到只剩下第一个数和第二个数相互比较,将这两个数比较完后这个元素列排序就为从小到大(也可以从大到小,我举的例子是排序从小到大),到这里,结束。
例题:给出一组数22,33,66,88,55,666,222,1024,360请将这组数按从小到大顺序排列。
思路图分析:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
实现代码:

  1. @Test
  2. public void demo03() {
  3. int[] numGroup= {
  4. 22,33,66,88,55,666,222,1024,360};//定义一组正整数,该组数字进行排序
  5. for (int i = 0; i < numGroup.length-1; i++) {
  6. //外层循环控制排序次数,第几轮
  7. for (int j = 0; j < numGroup.length-1-i; j++) {
  8. //内层循环控制每一轮排序多少次
  9. if(numGroup[j]>numGroup[j+1]) {
  10. int max=numGroup[j];
  11. numGroup[j]=numGroup[j+1];
  12. numGroup[j+1]=max;
  13. }
  14. }
  15. }
  16. for (int i = 0; i < numGroup.length; i++) {
  17. System.out.print(numGroup[i]+" ");
  18. }
  19. }

运行结果截图:
在这里插入图片描述

如果要求按从大到小排序的话就代码中最后遍历numGroup集合的时候让for循环中(int i = numGroup.length-1; i >=0; i–)或者在判断的时候将大于号改为小于号,把每一轮比较后的最小值放在最后面就可以 最后在输出就可以了。

发表评论

表情:
评论列表 (有 0 条评论,243人围观)

还没有评论,来说两句吧...

相关阅读