算法基础:排序之插入排序
2015-11-25 21:49
447 查看
插入排序可以说是最简单也是最基础的排序算法。但是因其时间复杂度为 O(n²),所以在数据量很大的情况下效率不高。效率更高的有归并排序和插入排序。以及一些概率性的排序算法。
就简单贴一下代码和运行结果了:
运行效果:
![](http://img.blog.csdn.net/20151125215305830?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
若有错误,请批评指正,欢迎交流
就简单贴一下代码和运行结果了:
#include <stdio.h> #define MAXLENGTH 100 void insertSortAscending(int array[], int n); //升序 void insertSortDecending(int array[], int n); //降序 int main() { int n = 1; int array[MAXLENGTH]; printf("Enter array length:"); while(1 == scanf("%d", &n)) { int i; printf("Enter %d number(s):", n); for(i = 0; i < n; ++i) scanf("%d", &array[i]); insertSortAscending(array, n); insertSortDecending(array, n); printf("Enter array length:"); } return 0; } void insertSortAscending(int array[], int n) { int i; for(i = 1; i < n; ++i) { int key = array[i]; int j = i - 1; while(j >= 0 && key < array[j]) { array[j+1] = array[j]; array[j] = key; j--; } } printf("Ascending Sorted: "); for(i = 0; i < n; ++i) printf("%d ", array[i]); printf("\n"); } void insertSortDecending(int array[], int n) { int i; for(i = n - 2; i >= 0; --i) { int key = array[i]; int j = i + 1; while(j <= n - 1 && key < array[j]) { array[j-1] = array[j]; array[j] = key; j++; } } printf("Decending Sorted: "); for(i = 0; i < n; ++i) printf("%d ", array[i]); printf("\n"); }
运行效果:
若有错误,请批评指正,欢迎交流
相关文章推荐
- 1.2.4 一种能够累加数据的抽象数据类型
- laravel事件创建以及使用
- Android-编辑需求demo实现
- 自我简介
- 打印日历
- Java中参数传递机制
- 前四课复习
- oracle 中的子查询
- Linux操作系统安装nginx
- 108.Oracle数据库SQL开发之 序列
- 编程艺术【转】阅后有感
- 直线生成算法——数值微分法(Digital Differential Analyzer, DDA)
- Zynq UltraScale+ MPSoC新鲜出炉
- CCNA学习笔记四 动态路由简介、OSPF动态路由配置
- JS截取字符串substr 和 substring方法的区别
- poj Fishnet 1408 (求最大四边形面积) 好题
- 107.Oracle数据库SQL开发之 表——截断、删除表
- 2015世界机器人大会-见闻录
- 列优先与行优先
- 斜堆,非旋转treap,替罪羊树