直接插入排序(StraightInsertion Sort)
将一个记录插入到已经排好序的有序表中,从而得到一个新的记录增一的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
如:int[] Key = newint[]{45,34,78,12,34,32,29,64};
排序过程:
///<summary>
///直接插入排序
///</summary>
///<paramname="key">需要排序的关键字序列</param>
public static void StraightInsertSort(int[] key)
{
for(inti = 1; i < key.Length; i++)
{
int j = i - 1;
int current = key[i];
while(j >= 0 && key[j] > current)
{
key[j + 1] = key[j];
j--;
}
key[j+ 1] = current;
}
}
///<summary>
///直接插入排序
///</summary>
///<typeparamname="T">需要排序记录的类型</typeparam>
///<paramname="array">需要排序的记录集合</param>
public static void StraightInsertSort<T>(T[] array)
where T : IComparable<T>
{
for(int i = 1; i < array.Length; i++)
{
int j = i - 1;
T current = array[i];
while(j >= 0 && array[j].CompareTo(current)>0)
{
array[j + 1] = array[j];
j--;
}
array[j + 1] = current;
}
}
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面,所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
华北电力大学LSGO软件技术团队成立于2010年09月25日,团队主要以机器学习和地理信息系统为主要研究方向,成立几年来为学校培养了大量优秀人才,他们或者就职于IBM、阿里巴巴、网易游戏、百度等IT企业,或者就读于中科院信安所、中科院计算所、中科院自动化所、中国科技大学、北京理工大学、武汉大学、华南理工大学、哈尔滨工业大学、华北电力大学等著名高校。
今年(2016年07月)毕业的李文乔同学保送到北京理工大学,安晟同学继续在华北电力大学读研究生,期间华硕公司,小米公司也希望团队推荐学生就业,综上,来LSGO软件技术团队学习可作为驻保高校学生,打发课余时间的一个不错选择。
如果对我们感兴趣,可以与我联系,通过考核后即可成为我们的一员。
请阅读以下代码(C#),得到联系方式:
联系客服