第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

java快速排序

標(biāo)簽:
Java

概述

快速排序算法借鉴的是二叉树前序遍历的思想,最终对数组进行排序。

优点:

对于数据量比较大的数组排序,由于采用的具有二叉树二分的思想,故排序速度比较快

局限

只适用于顺序存储结构的数据排序(数组 ,ArrayList等),不适用于链式的数据结构

算法实现思路

一.将目标数组转化为这样一个数组。数组中的某个位置左边的所有数据都比该位置的数据小,该位置右边的数据都比该位置数据大。

实现思路:



1.取出数组第0个数据

webp

图片发自简书App



2.从数组最右边开始遍历,如果遍历位置的数据比第0个位置的数据小,将该位置的数据赋值给左边指针停留下的位置。

webp

图片发自简书App

3.改变遍历方向,从左边开始开始遍历,如果发现左边的数据比第0个位置的数据大,将该位置的数据赋值给2步骤停留下来的位置,并变换方向。


webp

图片发自简书App

4.循环2、3步骤直到左右遍历到的下标重合
5.将取出的第0个位置的值赋值给循环结束后左右指针停留下的位置

二.借鉴前序遍历的思路,递归,最终完成排序。

代码实现

private void quickSort(int[] array, int start, int end) {        if (start >= end) {            return;
        }        int key = array[start];        int left = start;        int right = end;
        boolean direction = true;
        L1:        while (left < right) {            if (direction) {                for (int i = right; i > left; i--) {                    if (array[i] < key) {                        array[left++] = array[i];
                        right = i;
                        direction = !direction;                        continue L1;
                    }
                }
                right = left;
            } else {                for (int i = left; i < right; i++) {                    if (array[i] > key) {                        array[right--] = array[i];
                        left = i;
                        direction = !direction;                        continue L1;
                    }
                }
                left = right;
            }
        }        array[left] = key;
        quickSort(array, start, left - 1);
        quickSort(array, left + 1, end);

    }

结果测试

 @Test    public void testQuickSort() {        int[] array = new int[]{1, 3, 4, 10, 2, 5, 6, 9, 7, 8};
        quickSort(array, 0, array.length - 1);        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

结果打印

1
2
3
4
5
6
7
8
9
10



作者:夜亦明
链接:https://www.jianshu.com/p/73a08c197947


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消