#include #include "stdafx.h"
#define n 7
void print2(int *a)
printf("\n");
}void sort(int *data, int left, int right)
int i = left;
int j = right;
int key = data[i];
while (i < j) //左邊和右邊的檢測沒有碰面
data[i] = data[j]; //取出來填舊坑,形成新坑
while (i < j && data[i] < key) //從左邊取乙個蘿蔔形成坑
data[j] = data[i];
} data[i] = key; //此時 在i左邊的都比它小,i 右邊的都比它大
sort(data, left, i - 1); //遞迴呼叫讓左邊和右邊的再次進行排序
sort(data, i + 1, right);
}int main()
; sort(a, 0, n - 1);
print2(a);
}
快速排序理解
每次處理好 某個 標桿 數字 在 最終 陣列 中的位置。然後 每個 數字 依次 作為標桿數,都找到 自己的 位置。相比 氣泡排序,冒泡 是每次找 最大數字的 位置,找好後 在 不包含最大 數字的 陣列中,再 次找 當前最大數的 位置。而快速 排序 是 找 指定 標桿數 的位置。標桿數 可以是任意乙個...
理解 氣泡排序 快速排序
練習 second text hao long 片.建立乙個結構體,用來儲存姓名和分數 typedef student student intmain for int i 0 i num 1 i for int i 0 i num i getchar getchar 用來暫停程式,以便檢視程式輸出的...
快速排序的理解
快速排序是對氣泡排序的一種改進。它的基本思想是通過一趟掃瞄後,使得排序序列的長度能大幅度地減少。通過一趟掃瞄,確保以某個數為基準點的左邊各數都比它小,右邊各數都比它大。然後又用同樣的方法處理它左右兩邊的數,直到基準點的左右只有乙個元素為止。簡單的說就是 找乙個基準數 待排序的任意數,一般都是選定首元...