插入算法

简介:

最近在学习c++,感觉算法很是牛B,所以也想学习学习简单算法的实现

插入算法:

            原理:  把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。

         key 值前面的是有序的,拿选出的key 与其前面的值进行一个一个比较,依次循环

            用处:  适用于少量数据的排序

            时间复杂度:  O(n^2)


1.网上的图片

上代码:

先使用c++语言实现:

```

// 插入算法

void insertSortOne(int arr[],int length){

int i,j,key;

// 最外层循环,控制 key (就是拿出来要与它前面数值比较的数)

// 54,67,22,16,89,43,76,58,11,99 第一次 i = 0时,key 就是 54

//                              第二次 i = 1时,key 就是 67

//                              第三次 i = 2时,key 就是 22

//                              到最后一个数

for (i = 0; i< length; i++) {

key = arr[i]; //第二次 i = 1时,key 就是 67

for (j = i-1; j>=0; j--) // j = 0

{

if (arr[j] > key) // arr[j] = 54 ,与key比较

{

arr[j+1] = arr[j]; // 如果大于key  就赋值给

}

else

break; // 如果小于 就进入下次循环 ,j--

}

arr[j+1] = key;

}

}

```


用swift语言实现:

```

// 插入算法    func insertSort(_ array: [Int]) -> [Int] {       

var arr = array //      

for i in 1..0 && arr[j] < arr[j - 1]

{ //

swap(&arr[j - 1], &arr[j])

j -= 1

}

}

return arr

}

```

结束语:

是在学习大牛文章之后,自己简单的实现一下,感觉很有成就感啊 哈哈

swif大牛实现的算法 写的非常详细,可以看看


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

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 13,719评论 0 89
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 看《驴得水》的时候,听到这歌,感觉扑面而来的清新和甜蜜,看完电影,心塞的不行,这种美好,且留住。 ...
    悦茶小姐姐阅读 215评论 0 2
  • 解析生肖:2017年对于猪来说是一个偏财之年,会有意外之财,特别是在5月3日之后,他们的正财运、偏财运都会持续走高...
    董艳艳阅读 267评论 0 0