码迷,mamicode.com
首页 > 编程语言 > 详细

基本排序算法的总结

时间:2015-03-12 22:36:21      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:排序算法

基本排序的基础

  • 如果一个基本的排序算法不比数据处理,如数据读入和读出慢,就没有必要寻找一个更快的算法。
  • 如果被排序的文件适合放在内存中,则排序方法称为“内部排序”;从磁盘上对文件排序称为“外部排序”。区别是内部排序可以很容易的访问任何元素,但是外部排序必须顺序访问元素,至少在大的数据块是如此。
  • 排序程序访问元素的方式:通过关键字进行比较、直接访问整个元素移动;
  • 排序函数都包过3个参数:数组、带排序字数组的左边界和右边界 void(Item a[], int l, int r);
  • 排序算法的运行时间:对N个元素排序时
    • 选择排序、插入排序、冒泡排序与N2成正比;
    • 希尔排序(插入排序的改进)与 N(3/2) 成正比;
    • 关键字-索引排序与 N 成正比;
  • 如何减小开销,加快排序速度:(重要)
    • 改用一种更高效的算法
    • 缩短内部循环
    • 检查是否有可以跳过的比较或者交换操作

基本排序算法种类

1. 选择排序

选出数组中最小的元素,将它与数组中第一个元素交换,然后找出次小的元素,并将它与数组中第二个元素交换。。。直至整个数组排序完成。即通过不断选出剩余数组中最小的元素实现。

2. 插入排序

通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置插入。因而在从后向前扫描过程中,需要反复把已排序元素逐步向后移位,为最新元素提供插入空间。

3. 冒泡排序

遍历文件,如果紧邻的2个元素大小顺序不对,就将两者交换,重复操作直至排序完成

4. 希尔排序

5. 索引和指针排序

基本排序算法的总结

标签:排序算法

原文地址:http://blog.csdn.net/quzhongxin/article/details/44228479

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!