国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

快速排序思想

這篇具有很好參考價值的文章主要介紹了快速排序思想。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

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

代碼實現(xiàn):文章來源地址http://www.zghlxwxcb.cn/news/detail-732532.html

#include <stdio.h>
int a[101], n;//定義全局變量
void quicksort(int left, int right) {
 int i, j, t, temp;
 if(left > right) {
 return ;
}
 temp = a[left];
 i = left;
 j = right;
 while(i != j) {
  while(a[j] >= temp && i < j)
   j--;
  while(a[i] <= temp && i < j)
   i++;
  if(i < j) {
   t = a[i];
   a[j] = t;
  }
}
 a[left] = a[i];
 a[i] = temp;
 quicksort(left,i-1);
 quicksort(i+1,right);
}
int main() {
 int i, j, t;
 scanf("%d", &n);
 for(i = 1; i <= n; i++) {
  scanf("%d", &a[i]);
 }
 quicksort(1,n);
 for(i = 1; i <= n; i++) {
  printf("%d ", a[i]);
 }
 return 0;
}

到了這里,關(guān)于快速排序思想的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)與算法:快速排序

    數(shù)據(jù)結(jié)構(gòu)與算法:快速排序

    荷蘭國旗問題 想要理解快速排序,就先理解這個問題: [LeetCode75.顏色分類] 荷蘭國旗是由紅白藍三色組成的: 現(xiàn)在將其顏色打亂 然后根據(jù)一定的算法,將其復原為紅白藍三色,這就叫做荷蘭國旗問題。 在LeetCode的題目中,其將荷蘭國旗的三個顏色用0,1,2來表達,也就是說

    2024年01月15日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】:選擇排序與快速排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】:選擇排序與快速排序

    ?? 個人主頁 : Quitecoder ?? 專欄 :數(shù)據(jù)結(jié)構(gòu)與算法 我的博客即將同步至騰訊云開發(fā)者社區(qū),邀請大家一同入駐:騰訊云 歡迎來到排序的第二個部分:選擇排序與快速排序! 選擇排序是一種簡單直觀的比較排序算法。該算法的基本思想是在每一輪中選出當前未排序部分的最

    2024年03月17日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之快速排序

    快速排序 (Quick Sort),又稱劃分交換排序(partition-exchange sort),通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)

    2024年02月10日
    瀏覽(21)
  • 【數(shù)據(jù)結(jié)構(gòu)】排序算法(二)—>冒泡排序、快速排序、歸并排序、計數(shù)排序

    【數(shù)據(jù)結(jié)構(gòu)】排序算法(二)—>冒泡排序、快速排序、歸并排序、計數(shù)排序

    ?? 樊梓慕: 個人主頁 ??? 個人專欄: 《C語言》《數(shù)據(jù)結(jié)構(gòu)》《藍橋杯試題》《LeetCode刷題筆記》《實訓項目》 ?? 每一個不曾起舞的日子,都是對生命的辜負 目錄 前言 1.冒泡排序 2.快速排序 2.1Hoare版 2.2占坑版 2.3前后指針版 2.4三數(shù)取中對快速排序的優(yōu)化 2.5非遞歸版 3.歸

    2024年02月08日
    瀏覽(34)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】:非遞歸實現(xiàn)快速排序、歸并排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】:非遞歸實現(xiàn)快速排序、歸并排序

    ?? 個人主頁 : Quitecoder ?? 專欄 :數(shù)據(jù)結(jié)構(gòu)與算法 上篇文章我們詳細講解了遞歸版本的快速排序,本篇我們來探究非遞歸實現(xiàn)快速排序和歸并排序 快速排序的非遞歸實現(xiàn)主要依賴于棧(stack)來模擬遞歸過程中的函數(shù)調(diào)用棧。遞歸版本的快速排序通過遞歸調(diào)用自身來處理子

    2024年03月24日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】如何對快速排序進行細節(jié)優(yōu)化以及實現(xiàn)非遞歸版本的快速排序?

    【數(shù)據(jù)結(jié)構(gòu)與算法】如何對快速排序進行細節(jié)優(yōu)化以及實現(xiàn)非遞歸版本的快速排序?

    君兮_的個人主頁 即使走的再遠,也勿忘啟程時的初心 C/C++ 游戲開發(fā) Hello,米娜桑們,這里是君兮_,國慶長假結(jié)束了,無論是工作還是學習都該回到正軌上來了,從今天開始恢復正常的更新頻率,今天為大家?guī)淼膬?nèi)容是快速排序的兩大優(yōu)化和非遞歸實現(xiàn) 好了廢話不多說,開

    2024年02月08日
    瀏覽(27)
  • 數(shù)據(jù)結(jié)構(gòu)-堆結(jié)構(gòu)與堆排序思想

    heap.h #pragma once #include stdio.h #include stdbool.h #include assert.h #include errno.h #include stdlib.h //數(shù)組實現(xiàn)堆 typedef int HPDataType; typedef struct Heap { ?? ?HPDataType* a; ?? ?int size; ?? ?int capacity; }HP; void HeapInit(HP* php);//初始化堆 void HeapDestroy(HP* php);//銷毀堆 void HeapPush(HP* php, HPDataType x);//插入數(shù)

    2024年02月16日
    瀏覽(18)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】快速排序的三種實現(xiàn)方法

    【數(shù)據(jù)結(jié)構(gòu)與算法】快速排序的三種實現(xiàn)方法

    ? 目錄 一.基本思想 二.Hoare法 動態(tài)演示 三.挖坑法 動態(tài)演示 四.前后指針法 動態(tài)演示 五.快速排序優(yōu)化 隨機下標交換法 三路取中法 六.快速排序的特性 任取待排序元素序列中的某元素作為 基準值 ,按照該排序碼將待排序集合 分割成兩子序列 , 左子序列中所有元素均小于基

    2023年04月09日
    瀏覽(31)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】快速排序的非遞歸實現(xiàn)方法

    【數(shù)據(jù)結(jié)構(gòu)與算法】快速排序的非遞歸實現(xiàn)方法

    ? 目錄 一.前言 二.非遞歸實現(xiàn) 如果數(shù)據(jù)量過大的話,不斷遞歸就會出現(xiàn) 棧溢出 的現(xiàn)象,這個時候你的代碼是沒問題的,但就是跑不起來,這個時候就要 把遞歸改成非遞歸 。 一般有兩種改法: 1.直接改,利用循環(huán)等; 2.借助棧的輔助。 而快速排序的非遞歸實現(xiàn)方法就需要

    2023年04月17日
    瀏覽(23)
  • 【數(shù)據(jù)結(jié)構(gòu)】詳解七大排序算法(直接插入排序、希爾排序、直接選擇排序、堆排序、冒泡排序、快速排序)

    【數(shù)據(jù)結(jié)構(gòu)】詳解七大排序算法(直接插入排序、希爾排序、直接選擇排序、堆排序、冒泡排序、快速排序)

    1、基本思想 ???把待排序的數(shù)按其關(guān)鍵碼值的大小逐個插入到一個已經(jīng)排好序的有序序列中,直到所以的記錄插入完為止,得到一個新的有序序列。 ???實際中我們玩撲克牌時,就用到了插入排序的思想 基本步驟: ???當插入第i個元素時,前面的arr[0]、arr[2]…arr

    2024年02月04日
    瀏覽(110)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包