插入排序

 1 static class InSertionSort
 2     {
 3         static void InsertionSortUp(int[] Array)
 4         {
 5             for (int i = 1; i < Array.Length; i++)
 6             {
 7                 int key = Array[i];
 8                 int j = i - 1;
 9                 while (j >= 0 && Array[j] > key)
10                 {
11                     Array[j + 1] = Array[j];
12                     j--;
13                 }
14                 Array[j + 1] = key;
15             }
16         }
17         static void InsertionSortDown(int[] Array)
18         {
19             for (int i = 0; i < Array.Length; i++)
20             {
21                 int key = Array[i];
22                 int j = i - 1;
23                 while (j >= 0 && Array[j] < key)
24                 {
25                     Array[j + 1] = Array[j];
26                     j--;
27                 }
28                 Array[j + 1] = key;
29             }
30         }
31     }

问题一:本人想将 升降序两个方法进行封装  使得方法声明类似于  InsertionSort(int[] Array,bool asc),通过 asc 的值  来控制方法的升降序,不知道有什么好的方法。

问题二:目前只是int类型的比较,希望在丰富一下排序的类型,譬如string 或者 自定义类的某个属性 等等   

希望园里的大神  不吝赐教!!!

原文地址:https://www.cnblogs.com/Nbird/p/5862628.html