色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

快速排序是一種交換排序

算法與數據結構 ? 來源:未知 ? 作者:李倩 ? 2018-07-27 14:49 ? 次閱讀

要點

快速排序是一種交換排序。

快速排序由C. A. R. Hoare在1962年提出。

它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分:分割點左邊都是比它小的數,右邊都是比它大的數。

然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

詳細的圖解往往比大堆的文字更有說明力,所以直接上圖:

上圖中,演示了快速排序的處理過程:

初始狀態為一組無序的數組:2、4、5、1、3。

經過以上操作步驟后,完成了第一次的排序,得到新的數組:1、2、5、4、3。

新的數組中,以2為分割點,左邊都是比2小的數,右邊都是比2大的數。

因為2已經在數組中找到了合適的位置,所以不用再動。

2左邊的數組只有一個元素1,所以顯然不用再排序,位置也被確定。(注:這種情況時,left指針和right指針顯然是重合的。因此在代碼中,我們可以通過設置判定條件left必須小于right,如果不滿足,則不用排序了)。

而對于2右邊的數組5、4、3,設置left指向5,right指向3,開始繼續重復圖中的一、二、三、四步驟,對新的數組進行排序。

核心代碼

publicintdivision(int[]list,intleft,intright){//以最左邊的數(left)為基準intbase=list[left];while(left=base)right--;//找到了比base小的元素,將這個元素放到最左邊的位置list[left]=list[right];//從序列左端開始,向右遍歷,直到找到大于base的數while(left

快速排序算法的性能

時間復雜度

當數據有序時,以第一個關鍵字為基準分為兩個子序列,前一個子序列為空,此時執行效率最差。

而當數據隨機分布時,以第一個關鍵字為基準分為兩個子序列,兩個子序列的元素個數接近相等,此時執行效率最好。

所以,數據越隨機分布時,快速排序性能越好;數據越接近有序,快速排序性能越差。

空間復雜度

快速排序在每次分割的過程中,需要 1 個空間存儲基準值。而快速排序的大概需要 Nlog2N次的分割處理,所以占用空間也是 Nlog2N 個。

算法穩定性

在快速排序中,相等元素可能會因為分區而交換順序,所以它是不穩定的算法。

完整參考代碼

JAVA版本

代碼實現

1publicclassQuickSort{23publicintdivision(int[]list,intleft,intright){4//以最左邊的數(left)為基準5intbase=list[left];6while(left=base)9right--;10//找到了比base小的元素,將這個元素放到最左邊的位置11list[left]=list[right];1213//從序列左端開始,向右遍歷,直到找到大于base的數14while(left

運行結果

排序前: 1 3 4 5 2 6 9 7 8 0 base = 1: 0 1 4 5 2 6 9 7 8 3 base = 4: 3 2 4 6 9 7 8 5 base = 3: 2 3 base = 6: 5 6 7 8 9 base = 7: 7 8 9 base = 8: 8 9 排序后: 0 1 2 3 4 5 6 7 8 9

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4607

    瀏覽量

    92840
  • 快速排序
    +關注

    關注

    0

    文章

    3

    瀏覽量

    5431

原文標題:排序算法總結(2):快速排序

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA排序-冒泡排序介紹

    排序算法是圖像處理中經常使用一種算法,常見的排序算法有插入排序、希爾排序、選擇排序、冒泡
    發表于 07-17 10:12 ?1081次閱讀
    FPGA<b class='flag-5'>排序</b>-冒泡<b class='flag-5'>排序</b>介紹

    快速排序

    // 快速排序package algorithmsimport "fmt"http:// 第一種寫法func quickSort(values []int, left, right int
    發表于 10-17 19:05

    簡述計算機排序

    不用交換,低指針指向的小于樞軸的元素不用交換。直到高低指針指向小于等于或者大于等于的元素后直接交換元素。趟過后,在低子分區和高子分區中繼續進行遞歸
    發表于 12-26 23:07

    嵌入式stm32實用的排序算法 - 交換排序

    :插入排序、選擇排序交換排序、歸并排序、基數排序排序的分類大致為如下圖:在內部
    發表于 04-12 13:14

    C#實現快速排序

    快速排序法是對冒泡排序一種改進。它的基本思想是,通過排序將待
    發表于 08-09 17:57 ?16次下載

    文了解冒泡排序

    冒泡排序一種交換排序。 什么是交換排序呢? 交換排序:兩兩比較待排序的關鍵字,并
    的頭像 發表于 01-17 12:47 ?3031次閱讀
    <b class='flag-5'>一</b>文了解冒泡<b class='flag-5'>排序</b>

    常用排序算法分析

    一種是比較排序,時間復雜度O(nlogn) ~ O(n^2),主要有:冒泡排序,選擇排序,插入排序,歸并
    的頭像 發表于 07-13 16:13 ?2159次閱讀

    實用的排序算法 - 交換排序

    實用的排序算法 - 交換排序
    的頭像 發表于 03-20 09:53 ?1739次閱讀
    實用的<b class='flag-5'>排序</b>算法 -  <b class='flag-5'>交換排序</b>

    排序算法分享:歸并排序說明

    我們今天繼續給大家分享排序算法里面的另外一種排序算法:歸并排序
    的頭像 發表于 12-24 14:34 ?769次閱讀

    揭秘冒泡排序交換排序和插入排序

    個教官對這支隊伍進行整理,使得隊伍里的人從低到高的排下去,教官想到了一種排序算法來對這支隊伍進行身高排序。 如何理解冒泡排序 教官立馬想到了
    的頭像 發表于 06-18 09:57 ?1547次閱讀

    C語言排序快速排序的技巧

    快速排序是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,
    的頭像 發表于 07-29 15:14 ?2477次閱讀
    C語言<b class='flag-5'>排序</b>中<b class='flag-5'>快速</b><b class='flag-5'>排序</b>的技巧

    希爾排序的基本思想

    希爾排序是插入排序一種,又稱“縮小增量排序”,希爾排序是直接插入排序算法的
    發表于 08-08 10:02 ?1359次閱讀

    冒泡排序的基本思想

    冒泡排序的英文Bubble Sort,是一種最基礎的交換排序。之所以叫做冒泡排序,因為每個元素都可以像小氣泡
    的頭像 發表于 01-20 11:38 ?5883次閱讀
    冒泡<b class='flag-5'>排序</b>的基本思想

    php版冒泡排序是如何實現的?

    無論學習哪一種編程語言,進行算法方面的訓練時都繞不開“排序”。排序在進階編程中有非常廣泛的應用,要想成為編程高手,排序算法是必須要掌握的。而冒泡排序
    的頭像 發表于 01-20 10:39 ?929次閱讀
    php版冒泡<b class='flag-5'>排序</b>是如何實現的?

    jwt冒泡排序的原理

    jwt簡介 冒泡排序: (Bubble Sort)是一種簡單的交換排序。之所以叫做冒泡排序,因為我們可以把每個元素當成個小氣泡,根據氣泡大
    的頭像 發表于 09-25 16:33 ?537次閱讀
    jwt冒泡<b class='flag-5'>排序</b>的原理
    主站蜘蛛池模板: 野花日本大全免费观看3中文版| 超碰caoporon最新视频| 国产偷抇久久精品A片蜜臀A| 美女张开腿露出尿口扒开来摸动漫| 无码AV精品久久一区二区免费| 97人妻精品全国免费视频| 国内精品欧美久久精品| 日本免费一区二区三区最新vr| 中文字幕爆乳JULIA女教师| 国产啪精品视频网免费| 青青草国产自偷拍| 中文字幕日本在线mv视频精品| 国产亚洲福利在线视频| 日本一卡精品视频免费 | 亚洲乱码高清午夜理论电影| 边做边爱免费视频播放| 老湿影院色情a| 亚洲精品一卡二卡三卡四卡2021| 俄罗斯6一12呦女精品| 牛牛在线国产精品| 自拍黄色片| 久久超碰色中文字幕| 亚洲精品97福利在线| 国产精品久久国产三级国不卡顿 | 色色激情网| RUNAWAY韩国动漫免费网| 麻豆精品传媒2021网站入口| 伊人影院中文字幕| 精品三级在线观看| 亚洲薄码区| 国产特级毛片AAAAAAA高清| 深夜释放自己在线观看| 苍老师刺激的120分钟| 欧美性最猛xxxx在线观看视频| 2023国产精品一卡2卡三卡4卡| 看了n遍舍不得删的黄文| 野花香在线观看免费高清播放视频| 国产在线观看91精品| 迅雷哥在线观看高清| 国产毛片女人18水多| 乌克兰黄色录像|