> Java > java지도 시간 > 본문

JAVA에서 배열을 작은 것부터 큰 것까지 정렬하는 방법

WBOY
풀어 주다: 2023-05-07 20:49:06
앞으로
2596명이 탐색했습니다.

빠른 정렬

빠른 정렬은 "분할 및 정복"이라는 개념을 채택하여 하나의 정렬 패스에서 정렬할 데이터를 여러 개로 분할하는 비교적 효율적인 정렬 알고리즘입니다. 두 개의 독립적인 부분. 한 부분의 모든 데이터가 다른 부분보다 작도록 두 부분을 정렬한 다음 모든 데이터가 정렬될 때까지 두 부분을 계속해서 재귀적으로 정렬합니다.

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<j){
                j--; //j从右往左检索
            }
            while(arry[i]<=base && i<j){
                i++; //i从左往右检索
            }
            //代码走到这里i停下,j也停下,然后交换i和j位置的元素
            int tem = arry[i];
            arry[i] = arry[j];
            arry[j] = tem;
        }
        //如果上面while条件不成立就会跳出这个循环,往下执行
        //如果这个条件不成立就说明 i和j相遇了
        //如果i和j相遇了,就交换基准数这个元素和相遇位置的元素
        //把相遇元素的值赋给基准数这个位置的元素
        arry[left] = arry[i];
        //把基准数赋给相遇位置的元素
        arry[i] = base;
        //基准数在这里递归就为了左边的数比它小,右边的数比它大
        //排序基准数的左边
        quickSort(arry,left,i-1);
        //排右边
        quickSort(arry,j+1,right);
    }
 
    public static void main(String[] args) {
        int[] arry = {11,81,71,61,10,42,33,24,99};
        System.out.println("arry排序前:"+Arrays.toString(arry));
        quickSort(arry,0, arry.length-1);
        System.out.println("arry排序后:"+Arrays.toString(arry));
    }
로그인 후 복사

버블 정렬

  • 버블 정렬 아이디어: 배열이 주어지면 배열을 오름차순(내림차순)으로 정렬합니다.

  • 배열의 인접한 요소를 앞에서 뒤로 비교합니다. 이전 요소가 다음 요소보다 크면 한 번 통과한 후 가장 큰 요소가 배열의 끝에 있게 됩니다.

  • 배열의 모든 요소가 배열될 때까지 위의 과정을 순서대로 따르세요.

rreee

위 내용은 JAVA에서 배열을 작은 것부터 큰 것까지 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿