private int[] test_Insertion(int[] list) //插入排序 传入数组 3, 6, 2, 1, 9, 5, 4, 7
{
for(int i =;i<list.Length;i++) //首选取出第一个数(3)作为一个有序的数组,然后遍历传入数组"3"之后的每一个数
{
int j ;
int key = list[i];
for (j = i - ; j >= ; j--) //因为取出来的数是一个有序数组,排序是从小往大递增的,所以插入新的数字的时候只需要
{
if(list[j] < key) //==>倒序比较,假如比数组的最后一个数字大,前面的就不需要再比较了,这里就是最先比较的
{
break; //最大数就是list[j]
}
else
{
list[j + ] = list[j]; //假如待插入数字不比最大的一个数字大,就依次跟前面的数字比较,同时把比较过的数字
} //位置依次右移
}
list[j + ] = key; //最后找到合适的位置插入数组
}
return list;
}
相关文章
- 02-23内排序:冒泡排序、简单选择排序、直接插入排序、希尔排序、堆排序、快速排序介绍及C语言实现
- 02-23用函数实现冒泡法排序算法,函数原型为:void BubbleSort(int *a, int n);在 主程序中调用为输入的数组排序。
- 02-23Error: no override found for ‘vtkActor‘.(PCL中VTK无法实现点云法向量可视化)
- 02-23C# 代码实现 Windows服务:计时器=>简单实现
- 02-23一个简单的二分法实现
- 02-230.618法(最优化方法)Python实现
- 02-23优劣解距离法(TOPSIS)+Matlab代码实现
- 02-23插入排序之python实现源码
- 02-23雅可比(Jacobi)迭代法解线性方程组的Matlab实现
- 02-23C#实现获取并操作(启动、暂停、重启、停止)某台电脑 Windows 服务