【菜鸟算法之冒泡排序Java版】(不喜勿喷)

【菜鸟算法之冒泡排序】
            刚刚入算法的“坑”,学习排序那是必不可少滴@-@
  来个例子~~
  `

package yks;

import java.util.*;

public class maopaopaixujiangxu {
    public static void main(String [] args) {
        Scanner in = new Scanner(System.in);//这里就不多说了*-*
        int n = in.nextInt();
        int a[] = new int [n];
        for (int i = 0;i < n;i++) {
            a[i] = in.nextInt();                              //将数字存到a[]数组里
        }
        for (int i = 0;i < n-1;i++) {                      //"n-1"就是有n个数字只需要比较n-1次就好了     E:1,2,3只需要比较两次就好了
            for(int j = 0; j< n-i-1;j++) {                 //"n-i-1"当i = 0时比较n-1把最大的转移到数组的最左边(也就是a[0]的位置),最大                                                                                 值转移完后就不需要再和它比较了此时第二个for循环执行完一次了回到第一个                                                                                 for循环,此时执行i++也就意味着第二个for循环的比较次数减一
                if(a[j]<a[j+1]) {
                    int t = a[j+1];                            //找一个中间变量把较大的值附到t上,如果直接交换值会把值附乱。
                    a[j+1] = a[j];
                    a[j] = t;
                }
            }
        }
        for(int i = 0;i < n;i++) {                        //数组的数字已经经过排序
            System.out.print(a[i]+" ");              //将数组的数逐一输出并加空格加以区分
        }                                                        //此代码为降序将数组,若想升序则将“<”改为“>”。
    }                                                            //总结:四个for循环一个if判断

}
`

猜你喜欢

转载自blog.csdn.net/qq_39034533/article/details/84453595
今日推荐