C语⾔之插⼊排序
插⼊排序
1. 基本思想:
每⼀步将⼀个待排序的数据插⼊到前⾯已经排好序的有序序列中,直到插完所有元素为⽌。
2. 算法实现:
直接插⼊排序是将⽆序序列中的数据插⼊到有序的序列中,在遍历⽆序序列时,⾸先拿⽆序序列中的⾸元素去与有序序列中的每⼀个元素⽐较并插⼊到合适的位置,⼀直到⽆序序列中的所有元素插完为⽌。
3. 通俗理解:假设你在⽃地主,为了⼿⾥的牌条例更清晰,我们规定牌⾯⼩的那张要放在牌⾯⼤的后⾯。每抓⼀张牌(假设为 K ,此时
这张牌位于最前⾯)就要和K后⾯那张⽐较,如果⽐K⼤则和再后⾯⼀张,直到遇到⽐这张牌⼩的牌(假设为J),然后将K放在J的前⾯。⽽先前位于J前⾯的元素们则会整体向前移⼀位给K腾出位置。如果还觉得模糊,可以两个朋友玩会⼉⽃地主体验⼀下算法过程,哈哈。
4. 算法代码:
//插⼊排序
void insertSort(int data[],int length){
for(int i=1; i<length;i++)
{
c语言如何去学int temp=data[i];
//前⼀个数⼤于当前数则交换位置
for(j = i; j >0&& data[j-1]>temp; j--)
{
data[j]=data[j-1];
}
data[j]=temp;
}
}
5. 代码演⽰:
最后⼀个元素5也会类似9的排序过程,⼩伙伴们可以⾃⼰动⼿试试!如果觉得不错的话,可以点赞关注哦!如果发现内容有错误,感谢指正! C语⾔学习交流:648422161,欢迎⼤家加⼊聊,共勉~!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论