1、什么是插入排序:
将待排序数列分为两部分:有序数据和待插入元素。
插入排序的基本操作是将一个待插入数据插入到一组有序数据中,把将要插入的数与各数据进行比较,当找到第一个比插入数大的元素时,该元素之前为插入位置。
1 namespace ConsoleApplication1 2 { 3 class Program 4 { 5 static void bubble_sort(int[] unsorted) 6 { 7 //这一层for循环,决定接收变量(最后一个可不参加) 8 for (int i = 1; i < unsorted.Length; i++) 9 { 10 int insert=unsorted[i];//声明一个保存插入值的变量 11 int j=0;//声明一个记录下标的变量(可以得到向后移一位的起点下标元素) 12 while (j < i && insert > unsorted[j]) 13 { 14 j++; 15 } 16 //用for循环进行后移操作 17 for (; j < i; i--) 18 { 19 unsorted[i]=unsorted[i-1]; 20 } 21 //进行插入交换 22 unsorted[j] = insert; 23 } 24 } 25 26 static void Main(string[] args) 27 { 28 int[] x = { 6, 2, 4, 1, 5, 9,3,7 };//声明一个整型数组,并赋值 29 //排序前数组 30 Console.Write("排序前:"); 31 foreach (var item in x) 32 { 33 Console.Write(item+" "); 34 } 35 bubble_sort(x);//调用冒泡排序方法 36 //排序后数组 37 Console.Write(" 排序后:"); 38 foreach (var item in x) 39 { 40 Console.Write(item+" "); 41 } 42 Console.ReadLine(); 43 } 44 } 45 }