看了這片文章,確實非常形象,
quicksort:找乙個標準值(樞軸),將比標準值小的放到左側,比標準值大的放在它右側,根據標準值位置將當前資料分割成兩部分,兩部分分別重複以上以上操作
#includeint sort(int arr,int nlow,int nhigh)
nhigh--;
} //從前向後找比標準值大的
while(nlow < nhigh)
nlow++;
} }//標準值放入
arr[nlow] = temp;
return nlow;
}void quicksort(int arr,int nlow,int nhigh)
void print(int arr,int nlength)
printf("\n");
}int main()
; quicksort(arr,0,sizeof(arr)/sizeof(arr[0])-1);
print(arr,sizeof(arr)/sizeof(arr[0]));
return 0;
}
挖坑法之 快速排序
速度快,耗時小,面對資料量大的題目時可用快排 選取基準數,不斷 挖坑 填坑 使小於基準數的數全在其左邊,大於其的數全在右邊 最後陣列有序 參考鏈結 選擇最左端的數為基準數x 可將其視為乙個坑,可以將別的數填入這個坑 從右往左尋找小於x的數y,找到後填入坑,此時原基準數的坑被填,而y處產生新的乙個坑,...
快速排序 挖坑填數 分治法
快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 ...
快速排序(Quick Sort) 挖坑填數法
前面的博文講了氣泡排序 選擇排序 插入排序,今天我們談談快速排序!快速排序的基本思想是 1 先從序列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。分割槽的方式多樣,但一定要保證基準數左邊的數比它大 小 右邊的數比它小 大 3 再對左右區間重複...