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

