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 或者 自定义类的某个属性 等等
希望园里的大神 不吝赐教!!!