C 各種排序演算法

2021-05-26 03:03:34 字數 1651 閱讀 9196

public class sorter}}

} ///

/// 插入排序法

///

///

public static void insertionsort(int list)

list[j] = t;}}

/// 選擇排序法

///

///

public static void selectionsort(int list)

int t = list[min];

list[min] = list[i];

list[i] = t;}}

/// 希爾排序法

///

///

public static void shellsort(int list)

list[j - 1] = t;}}

}private static void swap(ref int l, ref int r)

/// 快速排序法

///

///

///

///

public static void sort(int list, int low, int high)

mid = (low + high) >> 1;

pivot = list[mid];

swap(ref list[low], ref list[mid]);

l = low + 1;

r = high;

do while (l < r);

list[low] = list[r];

list[r] = pivot;

if (low + 1 < r)

sort(list, low, r - 1);

if (r + 1 < high)

sort(list, r + 1, high);

}c#中排序用自帶的array.sort()即可實現,上面只是一些演算法的實現;

array.sort還可自定義排序所使用的比較方法;

如:a1,a2,a10  

用array.sort(arr)排序後變為:

a1,a10,a2  

-------------

如果你要排序後的順序為:

a1,a2,a10  

則要自定義乙個comparer,如:

public   class   customcomparer:system.collections.icomparer  

return   0;  

}  

}  

然後這樣呼叫:  

string   str   =   new   string;  

array.sort(str,   new   customcomparer());  

for   (int   i   =   0;   i   <   str.length;   i++)  

console.writeline(str[i]);

就可以輸出:a1,a2,a10 

【from

各種排序演算法C 實現

各種排序演算法的實現 交換函式 void swap int list,int low,int high 小於函式 bool lt const int low,const int high 插入排序 穩定 原理 插入排序逐個處理待排序的記錄。每個新記錄與前面已排序的子串行進行比較,將它插入到子串行中正...

C 各種常見排序演算法

1 氣泡排序的本質在於每一趟迴圈從陣列的頭走到尾找到最大的值放在最右邊,下一次迴圈繼續從剩下的n 1個數中尋找最大值放到最右邊。直到剩下最後倆個數比較交換後結束。2 比較方式也簡單易懂,拿公升序為例,用a i 與a i 1 比較,如果a i a i 1 swap a i a i 1 當然,如果10個...

各種排序演算法C 實現

include include include using namespace std 插入排序 void insertsort int num,int len 氣泡排序 void bubblesort int num,int len if flag break 選擇排序 void selectso...