快速排序 C語言

2021-08-21 07:24:21 字數 633 閱讀 7833

快速排序是氣泡排序的進化版,冒泡原理是比我大的放在我後面或者前面,快速則是比我大的放在後面,比我小的放在前面(前後並不絕對,取決於你是公升序或降序)下面舉個例子便於更好理解

一列數2   4   1   3   5  (貼上自己畫的圖)

假設第乙個數  2  為基準key,我們可以再設乙個變數t把2賦給t,這樣原來2的位置就空下來了。還設了兩個指標(此指標僅代表移動方向,非*p這種)由圖可以知道找出基準後先從右向走(right--)找比基準小的,找到後交換位置,然後從左向右(left++)找比基準大的,然後交換位置,直到  left=right 此時把基準放回空位置,基準左邊全是小的右邊全是大的(明顯最後基準把一列數分成兩部分),接下來對基準左邊和右邊同樣進行這種方法,直到每一部分只剩下乙個數時,此時排序完成無序變有序。

下面是我的**

如有錯誤,歡迎指正

快速排序C語言

就感覺,自己對這些個排序.至少,腦袋裡還沒有.哎,我老是不專心呢.加油吧.說說快速排序吧.這東西,原理就是不斷地將乙個陣列分成3部分.保持所有陣列處在這種狀態,最終完成排序.這些思想,還沒有掌握.加油吧,我還能說什麼?說些這個,呵呵.這段 起初不懂.後來,隨著不斷手工模擬,發現,採用了很多技巧.也難...

C語言 快速排序

1.快排是對氣泡排序的一種改進,在快速排序中,元素的比較和移動是從兩端向中間進行的,關鍵碼較大的元素一次就能從前面移動到後面,關鍵碼較小的元素一次就能從後面移動到前面,元素移動距離的較遠,從而減少了總的比較次數和移動次數 2.快速排序是基於分治法設計的,其分治策略是 劃分 選定乙個元素作為軸值,以軸...

快速排序 C語言

快速排序 基本思想是 1.分解 分為比基準元素小的 基準元素 比基準元素大的 三部分 2.遞迴求解 3.合併 include include define n 1000 define max 100 int a n void swap int i,int j int patition int p,i...