using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sort { class Program { static void Main(string[] args) { int[] myData = { 1000, 3, 55, 33, 4, 34, 344, 23, 333, 32, 66, 76, 766, 454 }; // bubbleSort(myData); // SelectSort(myData); InsertSort(myData); print(myData); Console.ReadKey(); } static void print(int[] items) { Console.WriteLine("*******显示数组开始*******"); foreach (int item in items) { Console.WriteLine(item); } Console.WriteLine("*******显示数组结束*******"); } //冒泡 static void bubbleSort(int[] items) { bool flag; //设一个标志 for (int i = 0; i < items.Length - 1; i++) { flag = false; for (int j = 0; j < items.Length - 1 - i; j++) { if (items[j] > items[j + 1]) { int temp = items[j]; items[j] = items[j + 1]; items[j + 1] = temp; flag = true; //标志设为true } } if (flag == false) return; //没发生交换,表明当前已经有序,直接返回 } } //选择 从0开始,从剩余部分数组中选出最小值 static void SelectSort(int[] arr) { int min; for (int i = 0; i < arr.Length - 1; ++i) { min = i; for (int j = i + 1; j < arr.Length; ++j) { if (arr[j] < arr[min]) min = j; } int t = arr[min]; arr[min] = arr[i]; arr[i] = t; } } //插入排序--直接插入 static void InsertSort(int[] arr) { for (int i = 1; i < arr.Length; i++) { int t = arr[i]; int j = i; while ((j > 0) && (arr[j - 1] > t)) { arr[j] = arr[j - 1];//交换顺序 --j; } arr[j] = t; } } } }