一、介绍
插入排序就是将前两个元素排好,再将第三个元素通过与前边的元素比较后插入适当的位置,再将第四个元素插入,不断重复插入与前边元素比较的操作,直到将元素都排列好。
演示如下:
视频演示:
- void InsertSort(int[] data)
- {
- int preIdx, current = 0;
- for (int i = 1; i < data.Length; i++)
- {
- //储存当前索引值的前边的索引值
- preIdx = i - 1;
- //储存当前要比较的数值
- current= data[i];
-
- //判断前边的数值是否比当前数值大,如果大说明当前值还需要往前移动,也就是preIdx对应的值
- //需要向后移动,否则在preIdx的后一个索引值preIdx+1处赋值(因为所有值在比较时都往后移动了)
- while (preIdx >= 0 && data[preIdx] > current)
- {
- data[preIdx + 1] = data[preIdx];
- preIdx--;
- }
- data[preIdx + 1] = current;
- }
- }