C#排序算法之快速排序解析
更新時間:2020年01月30日 10:13:31 作者:mlovelcottage
這篇文章主要為大家詳細介紹了C#排序算法之快速排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C#實現(xiàn)快速排序的具體代碼,供大家參考,具體內(nèi)容如下
代碼:
/// <summary>
/// 排序
/// </summary>
/// <param name="array">要排序的數(shù)組</param>
/// <param name="low">下標開始位置,向右查找</param>
/// <param name="high">下標開始位置,向左查找</param>
public static void Sort(int[] array, int low, int high)
{
if (low >= high)
return;
//完成一次單元排序
int index = SortUnit(array, low, high);
//遞歸調(diào)用,對左邊部分的數(shù)組進行單元排序
Sort(array, low, index - 1);
//遞歸調(diào)用,對右邊部分的數(shù)組進行單元排序
Sort(array, index + 1, high);
}
/// <summary>
/// 單元排序
/// </summary>
/// <param name="array">要排序的數(shù)組</param>
/// <param name="low">下標開始位置,向右查找</param>
/// <param name="high">下標開始位置,向右查找</param>
/// <returns>每次單元排序的停止下標</returns>
public static int SortUnit(int[] array, int low, int high)
{
int key = array[low];//基準數(shù)
while (low < high)
{
//從high往前找小于或等于key的值
while (low < high && array[high] > key)
high--;
//比key小開等的放左邊
array[low] = array[high];
//從low往后找大于key的值
while (low < high && array[low] <= key)
low++;
//比key大的放右邊
array[high] = array[low];
}
//結束循環(huán)時,此時low等于high,左邊都小于或等于key,右邊都大于key。將key放在游標當前位置。
array[low] = key;
return high;
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C#實現(xiàn)的簡單隨機數(shù)產(chǎn)生器功能示例
這篇文章主要介紹了C#實現(xiàn)的簡單隨機數(shù)產(chǎn)生器功能,涉及C#簡單界面布局、事件響應及隨機數(shù)生成相關操作技巧,需要的朋友可以參考下2017-09-09
Jquery+Ajax+Json+存儲過程實現(xiàn)高效分頁
這篇文章主要介紹Jquery+Ajax+Json+存儲過程實現(xiàn)分頁,需要的朋友可以參考下2015-08-08
C#實現(xiàn)通過ffmpeg從flv視頻文件中截圖的方法
這篇文章主要介紹了C#實現(xiàn)通過ffmpeg從flv視頻文件中截圖的方法,實例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以參考下2015-03-03

