排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插...
分类:
编程语言 时间:
2015-05-27 13:48:28
阅读次数:
174
排序算法分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因为数据量太大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。这里只讨论内部排序,常见的内部排序算法有:插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、及基数排序。1、插入排序插入排序是...
分类:
编程语言 时间:
2015-05-27 13:41:34
阅读次数:
312
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。....
分类:
编程语言 时间:
2015-05-26 23:02:26
阅读次数:
289
桶排序假设输入数据服从均匀分布,平均情况下它的时间代价为O(n);它的工作原理就是将数组分到有限数量的桶子里,每个桶子在使用其他排序算法或者递归的方式使用桶排序。
假如要对大小为[1…1000]范围内的n个数进行排序,可以把桶的大小设为10,那么就会产生100个桶。把输入的n个元素依次放到与之对应的桶中,然后对每个桶在进行排序,这样我们依次输出每个桶中的数据就得到了一个排序好的序列。将元素通过恰...
分类:
编程语言 时间:
2015-05-26 21:30:14
阅读次数:
155
这个之前在《编程珠玑》上面看到过,当时就感觉特别神奇!
速度突破了其他排序算法的下限
后来在《算法导论》上面又看到了,感触颇深!所以一定好好啃透《算法导论》
这一系列博客的特点就是——给出每趟排序的结果
本来想着好好写一下过程,弄个图片什么的,不过觉得网上的解析太多了,都比较好,所以这些博客就算是对自己的总结吧。
#include ...
分类:
编程语言 时间:
2015-05-26 14:23:25
阅读次数:
130
在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种,如我们最常用的快速排序和堆排序等算法,这些算法需要对序列中的数据进行比较,因为被称为基于比较的排序。基于比较的排序算法是不能突破O(NlogN)的。简单证明如下: .....
分类:
编程语言 时间:
2015-05-24 20:20:34
阅读次数:
138
任意一种比较排序算法,在最坏情况下的运行时间下限是Ω(nlgn)计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,k为某个整数,当k=O(n)时,计数排序的运行时间为Θ(n) 1 //输入数组A[1..n],存放排序结果数组B[1..n],临时存储区C[0..k] 2 COUNTING-S...
分类:
编程语言 时间:
2015-05-24 17:18:52
阅读次数:
135
今天下午刚学完计数排序,故趁热打铁写下来吧。
#include
using namespace std;
int main()
{
int a[10000], k, n, max; // 数组a为输入的数组
int c[10000], b[10000]; // 数组b存放排序的输出。 数组c提供临时存储空间
cin >> n;
for (int i=1; ...
分类:
编程语言 时间:
2015-05-23 18:25:27
阅读次数:
134
桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征:待排序列所有的值处于一个可枚举的范围之类;待排序列所在的这个可枚举的范围不应该太大,否则排序开销太大。排序的具体步骤如下:(1)对于这个可枚举范围构建一个buckets数组,用于记录“落...
分类:
编程语言 时间:
2015-05-22 16:38:21
阅读次数:
126
1 #include 2 #include 3 4 int a[10010],w[10010],p[10010],o[10010]; 5 6 void Barrel_Sort(int *a,int n,int mx) 7 { 8 int i; 9 memset(w,0,size...
分类:
编程语言 时间:
2015-05-21 21:57:22
阅读次数:
146