国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > Java > 正文

Java經典快排思想以及快排的改進講解

2024-07-14 08:43:26
字體:
來源:轉載
供稿:網友

一.經典快排思想

前提條件:給定一個無序數組arr

  1. 取這個數組最后一個數 num 作為標準,將前面部分的數分為兩部分,使得<=num的部分在左邊,>num的數在右邊;
  2. 然后將最后一個數和>num部分的第一個數進行交換,就使得原本在數組最后位置的num找到了正確的位置,它的左邊都是比它小的以及和它一樣的數,右邊都是比它大的數
  3. 回到1,進行遞歸或迭代,使得所有的數都找到正確的位

二.通過荷蘭國旗問題改進快排

什么是荷蘭國旗問題?

已知一個整形數組arr,和一個整數num,請把小于num的數放在數組的左邊,等于num的數放在數組的中間,大于num的數放在數組的右邊。

解決思路:

遍歷數組

  • 1. 若比num小,當前位置和小于的最后一個位置+1的值交換,并當前位置++;
  • 2. 若比num大,當前位置和大于的第一個位置-1的值交換;
  • 3. 若等于num的值,當前位置++;

附上代碼:

public static void NetherlandsFlag(int[] arr, int L, int R, int num) { int i = L; int p1 = L-1; int p2 = R+1; //終止條件:當前數的位置在大于區的前一個 while(i < p2) {  if(arr[i] < num) {   //當前數比num小,放左邊,i位置上的數和L上的數進行交換,并且i++,L++   swap(arr, i++, ++p1);  } else if(arr[i] == num) {   //當前數和num相等,i++   i++;  } else {   //當前數比num大,放右邊,i位置上的數和R上的數進行交換,并且i++,R--   swap(arr, i, --p2);  } }}

我們可以發現,荷蘭國旗問題和經典快排不同的就只是將<=num改為了< num和=num兩部分,借用這個思想使得原來每次只可以讓一個數找到正確的位置改進為了每次至少讓一個數找到位置。

三.在這基礎上將其改為隨機快排

隨機快排改進的地方只是在選取數的時候,將每次都選取最后位置的數改為選取隨機的一個數作為num,這樣做的好處是什么呢?

1.選取最后一個數:如果是一個已經排好序的數組,每次找到位置之后,左邊是要進行排序的部分,數組長度是原長度-1,它的時間復雜度就是O(N^2);如果每次找到的數都是中間的位置,它的時間復雜度就只有O(logN)

2.然而以隨機數作為選取的標準num的時候,因為是隨機的,就只能通過數學期望去計算它的時間復雜度,時間復雜度是O(logN)

下面附上最終的快排代碼及注釋

/* * swap(int[] arr, int i, int j);是將arr數組的i和j位置上的數交換的方法 */public static void quickSort(int[] arr) { // 如果為空或長度為1不需要排序,直接返回 if(arr == null || arr.length < 2)  return; else  quickSort(arr, 0, arr.length - 1);}// 遞歸排序public static void quickSort(int[] arr, int L, int R) { if(L < R) {  /*   * 隨機快排的隨機就在這   * 是隨機選取了一個數,和 R 進行了交換,然后使用這個數作為num,   * 所以每次選取的num是隨機的,   * 在計算時間復雜度時,是沒有最優最差情況的   * 而是通過一個長期的數學期望計算的,結果是O(N*logN)   */  swap(arr, L + (int) (Math.random() * (R - L + 1)), R);  int[] border = partition(arr, L, R);  // 小于區和大于區進行遞歸  quickSort(arr, L, border[0] - 1);  quickSort(arr, border[1] + 1, R); }}// 將給定數組劃分為小于區、等于區和大于區public static int[] partition(int[] arr, int L, int R) { int num = arr[R]; int less = L - 1; int more = R + 1; int curr = L; // 分為小于區等于區和大于區 while(curr < more) {  if(arr[curr] < num) {   swap(arr, curr++, ++less);  } else if(arr[curr] > num) {   swap(arr, curr, --more);  } else {   curr++;  } } //返回等于區的左右邊界的下標,通過下標確定小于區和大于區遞歸時的參數 return new int[] {less + 1, more - 1};}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产精品bbw一区二区三区| 国产激情二区| 亚洲精品影院在线| 18av在线播放| av在线中文| 久草在线资源福利| 国产一级视频| 在线国产小视频| 国产在线一区二区视频| 国产亚洲精品午夜高清影院| 国产黄色在线| 日本成人a视频| 国产一级免费在线观看| 伊人久久青青草| 在线一区观看| 国产免费视频| 99在线免费观看| 丁香视频免费观看| 在线免费看黄| 国产福利在线播放麻豆| 波多野结衣久久高清免费| 天天操天天射天天插| 国产黄视频在线观看| 欧美日韩视频精品一区二区| 最近中文字幕在线中文视频| av免费在线观看网站| 五月婷婷在线视频| 免费在线播放av| 国产福利小视频在线观看| 人人在线视频| 亚洲人在线播放| 97最新国自产拍视频在线完整在线看 | 国产丝袜精品丝袜| 国产黄色免费看| 午夜视频99| 尤物视频在线免费观看| 麻豆福利在线观看| 国产高清免费av在线| 国产视频福利在线| 国产中文第一页| 国产在线精品一区二区不卡| www.av在线| 久蕉依人在线视频| 国产女王在线**视频| 最新黄网在线观看| 国产一级激情| 丁香婷婷在线观看| 国产精品作爱| 丁香花在线电影小说观看| 国产女王在线**视频| 国产在线激情视频| 最好看更新中文字幕| 最近中文字幕av免费高清 | 精品欧美色视频网站在线观看| 国产一区久久精品| 国产寡妇树林野战在线播放| 国产精品久久久久久福利| 国产精品久久麻豆| 一区二区三区四区在线免费视频| 精品成人免费自拍视频| а√最新版地址在线天堂| 福利视频在线导航| 国产精品久久精品牛牛影视| 91午夜在线| 黄色三级视频在线观看| 国产精品久久久久白浆| xxxx视频在线| 国产香蕉免费精品视频| 99reav在线| 黄色毛片在线| 91精品专区| 久久久久久五月天久久久久久久久| 中文字幕不卡| 久久er视频| 在线观看国产福利视频| 国产区av在线| 激情四房婷婷| 青青草观看免费视频在线| 国产娇喘精品一区二区三区图片| а√最新版地址在线天堂| 国产小视频在线播放| 九色在线网站| 人人澡人人爽| av大片在线播放| 国产黄a三级三级三级av在线看| а√资源新版在线天堂| 制服丝袜中文字幕在线观看| 天天操人人干| 国产乱视频在线观看播放| 日本不卡视频一区二区| av影视在线看| 亚洲伊人网在线观看| 精灵使的剑舞无删减版在线观看| 国产在线色视频| 男人天堂v视频| 性色视频在线| 亚洲伊人网在线观看| 伊人222成人综合网| 国产一级性片| 国产精品入口麻豆完整版| 国产乱子伦三级在线播放| 国产男女无套在线播放| 午夜视频在线观看网站午夜视频在线| 成 人免费视频播放| 免费在线你懂的| 交换国产精品视频一区| 国产麻豆精品高清在线播放 | 欧美高清视频| 久久国产精品久久久久久小说| av在线不卡免费| 一区二区精品区| 亚洲成a人v欧美综合天堂麻豆| 亚洲欧美日韩综合精品网| аⅴ成人天堂中文在线| 国产美女视频一区二区三区 | 久久精品最新免费国产成人| 久久久久久77777| 国产九九九九| 精品国产高清a毛片无毒不卡| 99reav在线| 黄色三级视频在线观看| 五月婷婷导航| 在线视频色在线| 免费的黄网站在线观看| 好看的中文字幕在线播放| 国产午夜三区视频在线| 99福利在线| 国产精品一区二三区| 999精品网| 九九色在线观看| 精品一区二区三区高清免费不卡 | 国产精品区一区二| av在线资源网| 国产天堂在线观看| 青青在线视频| 国产亚洲精品午夜高清影院| av在线电影观看| 国产福利免费在线观看| 丁香视频免费观看| 亚洲国产精品区| 国产精品入口麻豆免费| 牛牛精品视频在线| 一本大道香蕉8中文在线视频| 国产在线观看色| а天堂8中文最新版在线官网| 国产高清视频免费最新在线| 国产蜜臀在线| 人人九九精品| gogogo影视剧免费观看在线观看| 国产精品白浆视频免费观看| 欧美国产中文| 日本视频三区| 日本电影全部在线观看网站视频| 国产二区三区在线| 国产三区在线观看| 国产一二三区在线观看| 国产免费一级片| 黄色国产在线| 国产乱子视频| 午夜国产在线| 国产精品视频一区二区免费不卡 | 免费在线黄色网址 | 久久久久久久久亚洲精品| av网站在线播放| 亚洲xxxxxx| xxxxx中文字幕| 免费网站看黄yyy222| 免费的黄网站在线观看| 欧美高清xxxx性| 国产在线www| 中文字幕中文字幕在线中高清免费版| 二区中文字幕| 国产精彩视频在线观看免费蜜芽| 国产婷婷视频在线| 国产区在线看| 永久免费网站在线| 欧美色欧美亚洲另类二区精品| 免费av不卡在线观看| 中文字幕有码在线视频| 国产精品入口麻豆电影| 精品欧美日韩一区二区 | www.操操操| 黄色片免费在线| 国产精品日日爱| а√最新版在线天堂| 天堂中文字幕在线| 在线免费看av| 麻豆精品视频入口| 51成人精品网站| 九九99精品| 一个人看的www免费观看视频| 老鸭窝av在线| 精品麻豆一区二区三区| 成年人在线观看| 在线中文视频| 最新亚洲精品国自产在线观看| 亚洲欧美自拍另类| 国产午夜电影| 九九热视频在线观看| 亚洲私人影吧|