最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)快速排序算法

 更新時(shí)間:2015年04月09日 11:29:14   投稿:hebedich  
快速排序算法是基于分治策略的另一個(gè)排序算法。其基本思想是:對(duì)輸入的子數(shù)組a[p:r],按以下三個(gè)步驟進(jìn)行排序。 1) 分解(Divide)(2) 遞歸求解(Conquer) (3) 合并(Merge)

1、算法概念。

快速排序(Quicksort)是對(duì)冒泡排序的一種改進(jìn)。由C. A. R. Hoare在1962年提出。
2、算法思想。

通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。

3、實(shí)現(xiàn)思路。

①以第一個(gè)關(guān)鍵字 K 1 為控制字,將 [K 1 ,K 2 ,…,K n ] 分成兩個(gè)子區(qū),使左區(qū)所有關(guān)鍵字小于等于 K 1 ,右區(qū)所有關(guān)鍵字大于等于 K 1 ,最后控制字居兩個(gè)子區(qū)中間的適當(dāng)位置。在子區(qū)內(nèi)數(shù)據(jù)尚處于無(wú)序狀態(tài)。
②把左區(qū)作為一個(gè)整體,用①的步驟進(jìn)行處理,右區(qū)進(jìn)行相同的處理。(即遞歸)
③重復(fù)第①、②步,直到左區(qū)處理完畢。

public static void quickSortByMid(int[] a, int low, int high) {
    if (low >= high)
      return;
    // 分割
    int pivot = a[low];// 基準(zhǔn)值
    int i = low, j = high;
    while (i < j) {
      while (i < j && a[j] >= pivot)
        --j;
      a[i]=a[j];
      while (i < j && a[i] <= pivot)
        ++i;
      a[j]=a[i];
    }
    a[i]=pivot;
    quickSortByMid(a, low, i-1);
    quickSortByMid(a, i+1, high);
  }

快速排序算法示意圖:

以上所述就是本文的全部?jī)?nèi)容了,希望對(duì)大家學(xué)習(xí)java快速排序算法有所幫助。

相關(guān)文章

  • 世界著名程序SpringMVC完整過(guò)程

    世界著名程序SpringMVC完整過(guò)程

    這篇文章主要為大家介紹了世界著名程序SpringMVC實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • java用戶名密碼驗(yàn)證示例代碼分享

    java用戶名密碼驗(yàn)證示例代碼分享

    這篇文章主要介紹了java用戶名密碼驗(yàn)證示例代碼,需要的朋友可以參考下
    2014-03-03
  • Jdk11使用HttpClient提交Http2請(qǐng)求的實(shí)現(xiàn)方法

    Jdk11使用HttpClient提交Http2請(qǐng)求的實(shí)現(xiàn)方法

    這篇文章主要介紹了Jdk11使用HttpClient提交Http2請(qǐng)求的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄

    Java Web 實(shí)現(xiàn)QQ登錄功能一個(gè)帳號(hào)同一時(shí)間只能一個(gè)人登錄

    對(duì)于一個(gè)帳號(hào)在同一時(shí)間只能一個(gè)人登錄,下文給大家介紹的非常詳細(xì),對(duì)java web qq 登錄功能感興趣的朋友一起看看吧
    2016-11-11
  • Json傳輸出現(xiàn)中文亂碼問(wèn)題的解決辦法

    Json傳輸出現(xiàn)中文亂碼問(wèn)題的解決辦法

    最近遇到一個(gè)問(wèn)題,就是將中文消息以json格式推給微信服務(wù)器時(shí),收到的消息是亂碼,所以下面這篇文章主要給大家介紹了關(guān)于Json傳輸出現(xiàn)中文亂碼問(wèn)題的解決辦法,需要的朋友可以參考下
    2023-05-05
  • Spring+quartz實(shí)現(xiàn)定時(shí)發(fā)送郵件功能實(shí)例

    Spring+quartz實(shí)現(xiàn)定時(shí)發(fā)送郵件功能實(shí)例

    spring提供的定時(shí)發(fā)送郵件功能一直深受廣大web開發(fā)者的喜愛(ài),這篇文章主要介紹了Spring+quartz實(shí)現(xiàn)定時(shí)發(fā)送郵件功能實(shí)例,有興趣的可以了解一下。
    2017-03-03
  • 一篇文章帶你了解Java中ThreadPool線程池

    一篇文章帶你了解Java中ThreadPool線程池

    線程池可以控制運(yùn)行的線程數(shù)量,本文就線程池做了詳細(xì)的介紹,需要了解的小伙伴可以參考一下
    2021-08-08
  • Java基礎(chǔ)第二篇方法與數(shù)據(jù)成員

    Java基礎(chǔ)第二篇方法與數(shù)據(jù)成員

    在上一篇文章中介紹了Java基礎(chǔ) 從HelloWorld到面向?qū)ο?,我們初步了解了?duì)象(object)。對(duì)象中的數(shù)據(jù)成員表示對(duì)象的狀態(tài)。對(duì)象可以執(zhí)行方法,表示特定的動(dòng)作。這篇文章我們進(jìn)一步深入到對(duì)象。了解Java中方法與數(shù)據(jù)成員的一些細(xì)節(jié)。
    2021-09-09
  • Java打印數(shù)組的三種方法整理

    Java打印數(shù)組的三種方法整理

    許多學(xué)編程專業(yè)的同學(xué)面試的時(shí)候,考官都會(huì)問(wèn)到Java如何打印數(shù)組這樣的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java打印數(shù)組的三種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • java8異步調(diào)用如何使用才是最好的方式

    java8異步調(diào)用如何使用才是最好的方式

    異步調(diào)用主要用于當(dāng)前程序的執(zhí)行不用等待調(diào)用方法執(zhí)行結(jié)束就可以繼續(xù)執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于java8異步調(diào)用如何使用才是最好的方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01

最新評(píng)論

财经| 勐海县| 荆门市| 松溪县| 连州市| 梅河口市| 清涧县| 贵溪市| 平谷区| 平利县| 环江| 嘉鱼县| 福建省| 革吉县| 崇仁县| 二连浩特市| 明水县| 上林县| 柯坪县| 望奎县| 渝中区| 平湖市| 贵定县| 邹城市| 商丘市| 剑阁县| 图们市| 建湖县| 佛山市| 商城县| 泉州市| 景德镇市| 宣恩县| 阿荣旗| 壤塘县| 富源县| 平武县| 瑞金市| 淮北市| 屯门区| 获嘉县|