美文网首页
数据结构(C语言)插入排序

数据结构(C语言)插入排序

作者: Margolu | 来源:发表于2019-07-13 15:53 被阅读0次

插入排序是将数组里面的第一个数当作有序的,往后的每一个数都和有序数组里面的每一个数作比较,找到合适的位置插入,结果仍然是有序的。

比如:int a[] ={38,69,45,97,76,13,27}

1.将38即a[0]当作有序的数组

2.a[1]69和它前面的数比较,a[1]>a[0],不做交换,结果为38,69有序数组

3.a[2]45和它前一位的数比较,a[2]<a[1],就把a[2]的值保存在临时变量中,把a[1]移到a[2]的位置上。利用临时变量中保存的原a[2]的值再和它前两位的数a[0]38比较,45大于4.38,就将45安插在38后面,结果是38,45,69

5.a[3]值97和前面的数比较,大于前一位的数,则不用改变,结果为38,45,69,97

6.a[4]值76和前一位数比较,小于a[3],将76保存在临时变量中,将a[3]的值后移至a[4],临时变量保存的值和前第二位数比较,76>69,就将76安置在所比较之数的后面,结果为38,45,69,97

7.以此类推。总的来说,插入排序就是当前位置的值和前面的有序数比较,如果小于前面的数,就将前一位的数往后移,然后自己再和前两位的数比较,如果仍然小于,继续将大的那个数往后移,继续和前三位的数比较,后移,比较,后移...直到所比的那个数已经是a[0],就将该数放在a[0]位置,原数仍然后移,或者找到比它大的数,就将该数放在大数后面。

代码如下:

相关文章

网友评论

      本文标题:数据结构(C语言)插入排序

      本文链接:https://www.haomeiwen.com/subject/vbfmkctx.html