Namespace 排序算法 { class Program { static void Main(string[] args) { Ebullition(56, 45, 32, 89, 54, 23, 10, 96, 34, 75, 62, 87); Select(56, 45, 32, 89, 54, 23, 10, 96, 34, 75, 62, 87); Insert(56, 45, 32, 89, 54, 23, 10, 96, 34, 75, 62, 87); } //执行冒泡排序(从小到大) static void Ebullition(params int[] list) { int sum = 0; //执行排序的次数 int temp; for (int i = 0; i < list.Length - 1; i++) { for (int j = 0; j < list.Length - 1 - i; j++) { //把相邻的两个数互换位置 if (list[j] > list[j + 1]) { temp = list[j]; list[j] = list[j + 1]; list[j + 1] = temp; } sum++; } } Console.WriteLine("冒泡法执行排序的次数是 " + sum + " 次"); Write(list); } //执行选择排序(从小到大) static void Select(params int[] list) { int sum = 0; int temp; for (int i = 0; i < list.Length; i++) { forpan> (int j = i+1; j < list.Length; j++) { //把其后各个元素与当前元素比较,把更小的元素与当前元素互换位置, //这样当前元素比其后每个元素的值都小 if (list[j] < list[i]) { temp = list[i]; list[i] = list[j]; list[j] = temp; } sum++; } } Console.WriteLine("选择法执行排序的次数是 " + sum + " 次"); Write(list); } //执行插入排序(从小到大) static void Insert(params int[] list) { int temp,sum = 0; for (int i = 1; i < list.Length; i++) { //如果当前元素比前一个元素小 if (list[i] < list[i - 1]) { //把当前元素与前一个比它的元素互换位置 for (int j = i; j > 0 && list[j] < list[j - 1]; j--) { sum++; temp = list[j]; list[j] = list[j - 1]; list[j - 1] = temp; } } else { sum++; }} Console.WriteLine("插入法执行排序的次数是 " + sum + " 次"); Write(list); } //输出排序后的数据 static void Write(int[] list) { for (int i = 0; i < list.Length; i++) { Console.Write(list[i] + "/t"); } Console.WriteLine("/n"); } } }