最新消息:想得多,做的少。一天到晚瞎鸡巴搞。

插入排序

大概数据结构与算法 阿虚 207浏览 0评论

.      什么是插入排序?玩过扑克牌的朋友可能都会有过这样的经历,就是新手的时候可能是第一次打牌会手忙脚乱。牌抓手里面抓的乱,不整洁。并且那么多张扑克牌也不会在意牌是否好不好,所有的牌抓完后通常会在重新整理一遍。通常会从最左边开始看起然后会把两张相邻的牌较小的一张往左挪栋,待左边的扑克牌保证是从小到大顺序排列后再继续往右边的牌看过去然后继续挪位置。如果你有过这样的经历(博主曾经刚打扑克牌的时候就这样子)那么当时你可能就在不知不觉的情况下使用了“插入排序”这个算法了。

.      插入并不需要像选择排序那样每次索引都需要从索引值的位置开始遍历和比较后续的元素并且要找到比当前索引更小的数后做交换,因为每次插入排序的索引所在的位置的左侧元素都能保证是从小到大是有序的存在。那么只需要将当前索引的元素与左侧的元素开始递减比较并且还需要满足当前索引值一定得小于索引-1的值才继续内循环。

bool Insert(int *Array, int ArrayLength)
{
    for (int i = 1; i < ArrayLength; i++) 
    { 
        for (int j = i; j > 0 && (Array[j] < Array[j - 1]); j--)
        {
            int tmp = Array[j - 1];
            Array[j - 1] = Array[j];
            Array[j] = tmp;
        }
    }
    return true;
}

 

转载请注明:虚无 » 插入排序

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址