zoukankan      html  css  js  c++  java
  • JAVA-基础-图解 冒泡排序

    冒泡排序

      逻辑以及代码如下:

        写的比较详细,如果还有的地方不理解,欢迎相互讨论

     1 package cn.lk;
     2 
     3 public class Demo01 {
     4     public static void main(String[] args) {
     5         
     6         int a[]={1,58,62,45,874,12,496,152,123,-5,-45,-9};
     7         
     8         
     9         
    10         
    11         //--------冒泡排序
    12         //-第一层for循环表示当前排序的轮次
    13         for(int i=0;i<a.length;i++){
    14             //-第二层for循环表示每轮排序中要将哪两个元素比较大小
    15             for(int j=a.length-1;j>=i+1;j--){
    16                 //-取出两个元素后对这两个元素进行大小判断
    17                 if(a[j]<=a[j-1]){//-设置升序或降序
    18                     //如果符合条件
    19                     int tmp=0;                //-定义一个临时的中转变量tmp,用来置换取出来的两个元素
    20                     tmp = a[j-1];            //-将大数的值给tmp
    21                     a[j-1]=a[j];            //-将小数的值给大数,因为之前的大数已经给tmp了,所以不用担心被覆盖
    22                     a[j]=tmp;                //-最后在将tmp里存的大数给了小数,因为之前的小数现在放在了大数里,也不用担心覆盖
    23                             /*至此,之前的大数的值给了小数,而小数的值给了大数,实现了按照降序的置换。就比如数组{1,3,5},
    24                              * 按照降序就是第一次循环将3和5互换位置:{1,5,3}
    25                              *                  第二次循环将1和5互换位置:{5,1,3}
    26                              *                  第三次循环将1和3互换位置:{5,3,1}
    27                              * 因此实现降序,升序也是同理
    28                              * 
    29                              */
    30                                 
    31                 }
    32             }
    33         }
    34         for (int i : a) {
    35             System.out.println(i);
    36         }
    37         
    38         
    39         
    40         
    41     
    42     }
    43 }

      原理:

            

     

      代码实现:

        

     1             int nums [] = {1,34,56,8,-32,7,-9,0,235};
     2                     for(int i=0;i<nums.length;i++){//当前要确定的是哪个位置的数
     3                             for(int j =nums.length-1;j>=i+1;j--){
     4                                     if(nums[j-1]>nums[j]){
     5                                             int tmp = nums[j-1];
     6                                             nums[j-1] = nums[j];
     7                                             nums[j] = tmp;
     8                                     }
     9                             }
    10                     }
    11                     for(int x : nums){
    12                             System.out.println(x);
    13                     }

              

  • 相关阅读:
    java实现AVL树
    java实现队列
    java实现双向链表
    java实现堆
    swagger导出离线文档
    java实现二叉查找树
    java实现二叉树遍历
    java实现栈
    Java实现单源最短路径算法(Dijkstra 算法)
    docker安装SqlServer2019
  • 原文地址:https://www.cnblogs.com/xiaoluohao/p/11305351.html
Copyright © 2011-2022 走看看