JAVA中数组如何从小到大排序?

快速排序

快速排序是一种比较高效的排序算法,采用“分而治之”的思想,通过多次比较和交换来实现排序,在一趟排序中把将要排序的数据分成两个独立的部分,对这两部分进行排序使得其中一部分所有数据比另一部分都要小,然后继续递归排序这两部分,最终实现所有数据有序。

public static void quickSort(int[] arry,int left,int right){
        //运行判断,如果左边索引大于右边是不合法的,直接return结束此方法
        if(left>right){
            return;
        }
        //定义变量保存基准数(第一次进入方法最左边的数字下标为0)
        int base = arry[left];
        //定义变量i,指向最左边
        int i = left;
        //定义j ,指向最右边(第一次进入方法最右边数字下标为数组的长度减1)
        int j = right;
        //当i和j不相遇的时候,再循环中进行检索
        while(i!=j){
            //先由j从右往左检索比基准数小的,如果检索到比基准数小的就停下。
            //如果检索到比基准数大的或者相等的就停下
            while(arry[j]>=base && i

冒泡排序

  • 冒泡排序思想:给定一个数组,让数组升序 (降序) 排序。
  • 将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素就在数组的末尾。
  • 依次从上上述过程,直到数组中所有的元素都排列好。
    public static void main(String[] args) {
            int[] arr = {18,13,50,15,4,17,18};
    
            System.out.println("arr的排序前:\n18  13  50  15  4  17  18 ");
    
            int temp  = 0 ;
            for(int i = 0 ;i< arr.length -1; i++){
                for(int j = 0; jarr[j+1]){
                        //条件成立 交换位置
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
    
            }
            System.out.println("arr排序后:");
    
            for(int i = 0; i

你可能感兴趣的:(算法,排序算法,数据结构,算法,java)