排序算法(1) —— 直接插入排序及其改进
来源:互联网 发布:什么是淘宝账号 编辑:程序博客网 时间:2024/06/07 03:08
参考文章: http://blog.csdn.net/yexinghai/archive/2009/10/10/4649923.aspx
该文章对插入排序的算法,是错误的。
直接插入排序
原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。
要点:设立哨兵,作为临时存储和判断数组边界之用。
实现:(我重新写了一个)
我们可以看到将无序区域的一个元素插入一个有序的时候,上述代码是一个一个比较,并且移位。将一个元素插入一个有序的序列,是否可以利用二分查找优化呢。于是,我又对上述代码进行了改进:
知识点:
1、memcpy不考虑重叠的情况;memmove考虑了重叠的情况。
2、int *pi; char *pc; void *pv; 假设指针的初始化的值都是0x0012ff40。
则pi+1的值是0x0012ff44; pc+1的值是0x0012ff41; pv+1编译错误,未知大小(类型)。针对32位系统。
3、对插入排序算法的优化。
4、对该插入的位置查找,二分查找的变种。
再给出一个标准二分查找算法:
- 排序算法(1) —— 直接插入排序及其改进
- 排序算法(1) —— 直接插入排序及其改进
- 排序算法之插入排序及其改进
- 经典排序算法----直接插入排序算法及其改进(稳定)
- 算法—直接插入排序
- 直接插入排序:改进算法---折半插入排序
- 直接插入排序:改进算法---2路插入排序
- 排序算法——直接插入排序
- 排序算法——直接插入排序
- 排序算法——直接插入排序
- 排序算法—插入排序之直接插入排序
- 排序算法——插入排序(直接插入排序、折半插入排序、希尔排序)
- 插入排序算法 —— 直接插入排序
- 算法之插入排序——直接插入排序
- 直接插入排序及改进
- 排序算法(三)——插入排序及改进
- 排序算法(三)——插入排序及改进
- 排序算法(三)——插入排序及改进
- Java的四大应用领域
- 传智播客Java web之 HttpServletResponse的应用
- 开始我的CSDN生涯!
- 传智播客Java web之 HttpServletRequest的应用
- 关注N97应用开发
- 排序算法(1) —— 直接插入排序及其改进
- HP大中华区总裁孙振耀撰文谈职业和人生
- 生活真累
- 在Linux命令行下安装Oracle 10g
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- CEdit获取编辑框的内容
- 接口之比较
- 传智播客Java web之 JSP基础之JSP的原理与特性
- 数据挖掘基本知识学习