排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
本文将依次介绍上述八大排序算法。
算法一:插入排序
插入排序示意图
插入排序是一种最简单直观的排序算法,它的工作原理是...
分类:
其他好文 时间:
2014-08-18 14:37:12
阅读次数:
255
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插...
分类:
其他好文 时间:
2014-08-18 14:20:12
阅读次数:
259
转自还有多少青春可以挥霍经典排序算法 - 快速排序Quick sort经典排序算法 - 桶排序Bucket sort经典排序算法 - 插入排序Insertion sort经典排序算法 - 基数排序Radix sort经典排序算法 - 鸽巢排序Pigeonhole sort经典排序算法 - 归并排序M...
分类:
其他好文 时间:
2014-08-14 19:39:09
阅读次数:
147
我看后缀数组,思想很容易懂,但是基数排序那边我确实理解了很久才理解,现在我写一份自己可以看懂的具体分析。第一步,首先将所有的位置上的值装入数组中,并记录排名为i的数为sa[i],第i个数的排名为rank[i].下面就要进行logn次的倍增操作,我们定义k为当前倍增长度基数排序,痛苦ing首先将每一对...
分类:
其他好文 时间:
2014-08-14 10:39:18
阅读次数:
243
各类排序算法总结五.分配类排序->基数排序: 基数排序是一种借助于多关键码排序的思想,是将单关键码按基数分成“多关键码”进行排序的方法。基数排序属于”低位优先”排序法,通过反复进行分配与收集操作完成排序. 对于数字型或字符型的单关键字,可以看成是由多个数位或多个字符构成的多关键字, 此时可以采用这种“分配-收集”的办法进行排序,称作基数排序法。其好处是不需要进行关键字间的比较。 例如:对下列这组关...
分类:
其他好文 时间:
2014-08-13 22:28:17
阅读次数:
305
/*
* 算法导论 第八章 线性时间排序
* 计数排序、基数排序和桶排序
*/
#include
#include
#include
#include
using namespace std;
void printArray(int arr[], int len, char *str)
{
cout << str << endl;
for (int i=0; i<len; i...
分类:
其他好文 时间:
2014-08-12 00:46:13
阅读次数:
210
基础知识: 排序:通过计算机手段将一组随机无序的数列变成有序的数列。常用排序算法有很多,主要有如下的几种: 包括插入排序,冒泡排序,选择排序,堆排序,归并排序,计数排序,基数排序,桶排序,快速排序等。 插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素...
分类:
其他好文 时间:
2014-08-11 14:45:42
阅读次数:
282
原文:http://blog.csdn.net/t12x3456/article/details/7430700各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. ...
分类:
编程语言 时间:
2014-08-10 21:10:51
阅读次数:
429
计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。计数排序的基本思想就是对于每一个输入元素x,确定出小于x的元素个数。有了这一信息就可以把x直接放到它在最终输出数组中的位置上。例如,如果有17个元素小于x...
分类:
其他好文 时间:
2014-08-08 17:37:56
阅读次数:
190