static void Main(string[] args) { RArray arr = new RArray(10); Random r = new Random(100); for (int i = 0; i < 10; i++) { arr.Insert(r.Next(0, 100)); } arr.DisPlayElements(); Console.WriteLine("Bubble Sort....."); RArray list = BubbleSort(arr); list.DisPlayElements(); Console.WriteLine("Selection Sort....."); list = SelectionSort(arr); list.DisPlayElements(); Console.WriteLine("Insert Sort....."); list = InsertSort(arr); list.DisPlayElements(); Console.ReadKey(); }
static RArray InsertSort(RArray arr) { int inner, temp; for (int outer = 1; outer <= arr.upper; outer++) { temp = arr[outer]; inner = outer; while (inner > 0 && arr[inner - 1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; } return arr; }
插入排序算法有两层循环。 外层循环会逐个遍历数组元素, 而内层循环则会把外层循环所选
择的元素与该元素在数组内的下一个元素进行比较。 如果外层循环选择的元素小于内层循环
选择的元素, 那么数组元素都向右移以便为内层循环元素留出位置.