Swift 实现排序算法

1、插入排序

原理

就像玩扑克牌,右手是无序的牌,右手的牌一张一张摸起来放到左手上,左手永远是排序好的牌。

实现代码
var array = [2,1,4,6,3,2,67,8,54,1] // 定义数组

for index in 1..<array.count { // 遍历数组,从第二个数开始
    var key = array[index] // 第一次循环获取第二个数
    var i = index - 1 //此时i为第一个数
    while i >= 0 && array[i] > key {//如果第二个比第一个数大
        array[i + 1] = array[i] //第一个数赋值给第二个
        i -= 1 // i = - 1 循环退出
    }
    array[i + 1] = key // 暂存的第二个数给第一个数赋值
    // index 变大以后会逐个向前比较,如果遇到比它小和比它大的区间就插进去
}

print(array)

Result : [1, 1, 2, 2, 3, 4, 6, 8, 54, 67]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ba la la la ~ 读者朋友们,你们好啊,又到了冷锋时间,话不多说,发车! 1.冒泡排序(Bub...
    王饱饱阅读 1,809评论 0 7
  • 我悄悄地 爬上了你的床 静静地看着你的模样 你的面容是那样的唯美 你在睡梦中 是那样的安详 青春时 你给了我最好的...
    琢玉书生阅读 205评论 6 7
  • 离别前的那天晚上,姥姥温了一锅的水,小末蹲在姥姥身边嚷着这一晚上又要烙煎饼了,炕这么热没办法睡,要和我一起在葡萄架...
    深蓝L阅读 261评论 0 0
  • 月缺月圆,中秋节伴着凉凉的秋风慢悠悠地踏风而来,中午掀开日历,天呢,中秋节就到了,没有思想准备的到了。岁岁年年...
    简单的小诺儿阅读 491评论 19 38