排序算法之简单插入排序
来源:互联网 发布:男博导女博士知乎 编辑:程序博客网 时间:2024/06/06 00:14
插入排序的主要思想每次从待排序的数组中取一个值,按其值的大小插入到已经排好序的数组中的适当位置上,直到全部插入完为止。
插入排序的时间复杂度最好为O(n), 最坏为O(n2), 平均时间复杂度为O(n2)。
插入排序是一种稳定的排序算法。
以数组89 37 23 4 54 17 49 为例,排序的过过程如下:
原-->89 37 23 4 54 17 49
1-->37 89 23 4 54 17 49
2-->23 37 89 4 54 17 49
3-->4 23 37 89 54 17 49
4-->4 23 37 54 89 17 49
5-->4 17 23 37 54 89 49
6-->4 17 23 37 49 54 89
直接上代码:
C:
//插入排序void insert_sort(int array[], int len) { for(int i=1; i<len; i++) { int temp = array[i]; int j=i-1; while (j>=0 && array[j] > temp) { array[j+1] = array[j]; j--; } if(j != i-1) { array[j+1] = temp; } }}
function insertSort(array $array) { $len = count($array); for($i=1; $i<$len; $i++) { $temp = $array[$i]; $j = $i-1; while($j>=0 && $array[$j] > $temp) { $array[$j+1] = $array[$j]; $j--; } if($j != $i-1) { $array[$j+1] = $temp; } }}
Python:
def insertSort(array=None): if array is None: return length = len(array) for i in range(1, length): temp = array[i] j = i-1 while j>=0 and array[j] > temp: array[j+1] = array[j] j -= 1 if j != i-1: array[j+1] = temp
阅读全文
0 0
- 内部排序算法之简单插入排序
- C++简单排序算法之插入排序
- 排序算法之简单插入排序法
- Java排序算法之简单插入排序
- 排序算法之简单插入排序
- 排序算法之简单插入算法
- Java简单算法之 冒泡排序 选择排序 插入排序
- 【基础算法】排序-简单排序之三(插入排序)
- 简单排序算法--插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- c++基础之类的继承
- 为什么要用到泛型类、泛型方法
- Java泛型之Type体系
- 用JavaSE知识点完成登入注册界面
- 【安全】10分钟理解Capability本质
- 排序算法之简单插入排序
- 嵌入式 ARM9 S3C2451裸机 GPIO封装原理和代码实现(详解)
- application的 使用
- bzoj 3439: Kpm的MC密码
- 最小二乘法
- 39-逗号操作符的分析
- Java知识结构图
- 树和二叉树的应用
- ffmpeg+SDL2 实现简单播放器