插入排序的两种实现
来源:互联网 发布:js canvas 动画库 编辑:程序博客网 时间:2024/06/07 11:30
插入排序是一种直观简单的排序方法,其基本思想是:每次将待排序的元素插入到前面已排序的子序列中,直到所有待排序的元素全部插入为止。
举例说明,数组A[0...n-1]排序:
1) 开始排序前,A[0]视为一个有序区间,无序区间为[1...n-1],令i = 1;
2) 将A[i]插入到有序区间[0...i-1],得到有序区间A[0...i];
3) i++并重复第2步,直到i=n-1,排序结束
时间复杂度为:O(n^2)
实现代码1
/*@ 插入排序(升序)版本1@ 时间复杂度:O(n^2)*/template<class T>void insertSort_1(T *a, int n){for(int i=1; i<n; i++){int j=0;//从前往后找到元素插入的位置while(j++ < i){if(a[i] < a[j])//不管情况好坏,均需要比较 i 次swap(a[i], a[j]);}}}实现代码2
/*@ 插入排序(升序)版本2@ 时间复杂度:O(n^2)*/template<class T>void insertSort_2(T *a, int n){for(int i=1; i<n; i++){int j=i-1;//从后往前找到元素插入的位置while(j-- > 0){if(a[i] >= a[j])//最坏的情况下,需要比较 i 次;最好的情况下,1次足够break;elseswap(a[i], a[j]);}}}
0 0
- 插入排序的两种实现
- 插入排序算法(Insertion Sort)的两种实现
- 直接插入排序的两种实现方式
- 两路插入排序的Java实现
- [Sort]插入排序-两种实现
- 常用排序算法之二:直接插入排序的两种实现方式
- python序列插入的两种实现
- 详谈排序算法之插入类排序(两种思路实现希尔排序)
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 插入排序的实现
- 快速排序的实现两种实现
- HDU 2577 How to Type
- 如何清除 xcode6的 描述文件
- 使用huhamhire-hosts解决无法访问google账户以及Gmail的问题
- stream_iterator和ostream_iterator学习体会
- asyncktask详解
- 插入排序的两种实现
- 堆外并发计数器
- I CAN DO IT
- 黑马程序员——关键字、标示符、注释
- 使用ratingbar评分的星星
- 并口定义及并口编程基础
- Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- sqlserver2008 服务 连接失败 -服务器名称如何写!!
- 模态视图中添加代码的具体方法