常用算法总结之排序(一)----写在前面
2010-10-15 10:59
330 查看
最近一段时间算是面试的季节,虽然我还不要找工作,但浸染其中也多少对招聘方的需求有了些了解。对于我们计算机系的学生来说,面试写代码是必不可少的事情,但综合师兄师姐们的说法,难度也不是太大,总体来说是一些常用算法的编程实现。由此,我萌生了总结一下平时常用的算法,诸如排序、查找、字符串操作之类,也算是对于c++的一种复习。
首先还是从排序开始。
排序应该算是必学的入门算法了。所谓排序即是按照一定的规则将一组数据排列起来,在后续的篇章中将默认以从小到大的规则来进行排序。排序按照算法的不同有多种形式,按照处理过程中数据的保存形式的不同可以分为内部排序和外部排序两种。
内部排序:排序过程不需访问外存。使用内部排序时,所有的数据都保存在内存中,相较而言,当处理的数据量巨大时,不可能全部存储在内存,那即是外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。前面所说的按算法所分的不同形式中,属于内部排序的有:交换排序、选择排序、插入排序及合并排序。交换排序主要包括冒泡排序和快速排序,选择排序主要包括直接选择排序和堆排序,插入排序主要包括直接插入排序和希尔排序。以后将按照这个顺序分别总结各类算法。
外部排序:前面已说过,排序时通常数据量巨大,不可能都储存在内存中,排序时一般从外存读取一部分数据进入内存进行排序,处理过后再从内存存储回外存,然后再从外存读取部分数据进入内存处理。这样的处理过程最适合多路合并排序,即先将原数据分解成许多能一次装入内存的部分,每次读取一个部分进行排序处理,然后对每一有序部分进行合并排序完成原文件的排序。
以上算作写在前面的话,对整个部分做一个概述,下一篇将从冒泡排序开始总结。
首先还是从排序开始。
排序应该算是必学的入门算法了。所谓排序即是按照一定的规则将一组数据排列起来,在后续的篇章中将默认以从小到大的规则来进行排序。排序按照算法的不同有多种形式,按照处理过程中数据的保存形式的不同可以分为内部排序和外部排序两种。
内部排序:排序过程不需访问外存。使用内部排序时,所有的数据都保存在内存中,相较而言,当处理的数据量巨大时,不可能全部存储在内存,那即是外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。前面所说的按算法所分的不同形式中,属于内部排序的有:交换排序、选择排序、插入排序及合并排序。交换排序主要包括冒泡排序和快速排序,选择排序主要包括直接选择排序和堆排序,插入排序主要包括直接插入排序和希尔排序。以后将按照这个顺序分别总结各类算法。
外部排序:前面已说过,排序时通常数据量巨大,不可能都储存在内存中,排序时一般从外存读取一部分数据进入内存进行排序,处理过后再从内存存储回外存,然后再从外存读取部分数据进入内存处理。这样的处理过程最适合多路合并排序,即先将原数据分解成许多能一次装入内存的部分,每次读取一个部分进行排序处理,然后对每一有序部分进行合并排序完成原文件的排序。
以上算作写在前面的话,对整个部分做一个概述,下一篇将从冒泡排序开始总结。
相关文章推荐
- 排序常用算法总结
- 常用算法总结之排序(二)----基本冒泡
- 常用算法总结之排序(三)----改进冒泡
- 常用算法总结之排序(四)----快速排序
- 算法与数据结构-常用排序算法总结1-比较排序
- 常用算法总结之排序(六)----堆排序
- 常用算法总结之排序(七)---直接插入排序
- 数据结构与算法总结——排序(一)简单排序
- 面试常用算法总结——排序算法(java版)
- 常用算法总结
- 算法就是这么一回事(写在前面)(没内容)
- 八种排序程序总结,已经稳定性,算法复杂度,程序保证正确
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- 算法总结JS版(二)—— 选择排序(Selection Sort)
- 数学建模学习笔记(建模中的十大常用算法总结)
- ACM等算法比赛中JAVA 常用"STL"总结:TreeMap,Queue,PriorityQueue等
- JAVA 常用算法总结
- 九种常用排序的性能分析总结
- 常用的算法和数据结构分析(查找和排序)
- 【常用算法思路分析系列】排序高频题集