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                     }

          

原文地址:https://www.cnblogs.com/xiaoluohao/p/11305351.html