插入排序(C/C++)
2015-09-17 23:26
246 查看
算法原理
插入排序是平时抓扑克牌进行排序的一个模仿实现,即从第一张开始把新的元素(抽到的扑克)不断插入到有序序列中.算法复杂度
时间复杂度: 最好O(n)有序数列 , 最坏O(n2) ,平均O(n2)空间复杂度: O(n)
算法实现
#include <iostream> #define LEN 10 using namespace std; void print_array(int *data,int size) //打印序列 { for(int i = 0; i < size ;++i) { cout << data[i] << " " ; } cout << endl; } void insert_sort(int data[]) { for(int i = 1;i < LEN;++i) { int key = data[i]; //save key value in order to overwrite it int j = i - 1; while(j >= 0 && data[j] > key) { data[j+1] = data[j]; //move key value to correct position j--; } data[j+1] = key; //set key value //printarray(data,LEN); } } int main() { int data[] = {2,1,5,8,6,4,3,10,5,9}; insert_sort(data); print_array(data,LEN); return 0; }
相关文章推荐
- 插入排序
- 动易2006序列号破解算法公布
- 文件遍历排序函数
- C#选择排序法实例分析
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#实现Datatable排序的方法
- 超大数据量存储常用数据库分表分库算法总结
- SQLSERVER的排序问题结果不是想要的
- Windows Powershell排序和分组管道结果
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#通过IComparable实现ListT.sort()排序
- C#选择法排序实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- SQL学习笔记四 聚合函数、排序方法
- C#实现的算24点游戏算法实例分析
- C#对list列表进行随机排序的方法