排序:冒泡排序,直接选择排序

排序

今天向大家介绍两种比较常见的数组排序,第一个是冒泡排序,另一个是直接选择排序,让我们一起来看一下吧!

小知识:数组的第一个元素是0,是从0元素开始的。

1. 冒泡排序

话不多说,我们先来看一下代码。

 public class maopaodemo {
    public static void main(String[] args) {
        int a[]={123,423,4,23,4,23,4,2234,2,3,423,23,5,23};
        //定义一个数组
        for(int b=1;b<a.length;b++){
        //先循环一共比较多少次
            for(int c=0;c<a.length-b;c++){
        //每次循环后都确定了一位数,所以要剪掉每次运行的次数
                if(a[c]>a[c+1]) {
                    int t=a[c];
                    a[c]=a[c+1];
                    a[c+1]=t;
         //数组第一个和他的第二位作比较 如果大于
         //申请了一个临时变量取交换他俩的数值
                }
            }
        }
        System.out.println(a[0]);
        //输出最小的一位数
        for(int p:a){
            System.out.print(p+"   ");
       	//整数p遍历数组a并输出结果
        }
       
    }
}

2. 直接选择排序

 public class zhijiexuanzhepaixxudemo {
    public static void main(String[] args) {
        int a[] = {123, 423, 4, 23, 4, 23, 4, 2234, 2, 3, 423, 23, 5, 23};
        for (int b = 1; b < a.length; b++) {
            int o = 0;
            //申请一个下标并指向0元素
            for (int c = 1; c <= a.length - b; c++) {
            //因为下表指向的是0元素,为了保持数组循环的足够
            //所以我们要让c小于等于a的长度
                if (a[o] < a[c]) {
                    o = c;
                }
             //数组里下标0元素和数组做对比
             //如果小于就让下标指向最大的数
                int t = a[o];
                a[o] = a[a.length - b];
                a[a.length - b] = t;
             //申请临时变量取交换他俩的值
             //现在a[o]是最大的
             //每次a数组里循环过后-b都是最大的数
    		 }
        }
        System.out.println(a[0]);
       	//输出最小的数
        for (int p : a) {
            System.out.print(p + "   ");
        }
        //p遍历数组a并输出结果
    }
}

今天你学废了吗!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_48690030/article/details/106817540