插入算法

2017-08-10  本文已影响0人  愿世界和平

简介:

最近在学习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大牛实现的算法 写的非常详细,可以看看


上一篇下一篇

猜你喜欢

热点阅读