排序算法目录概述排序算法交换排序快速排序冒泡排序选择排序堆排序直接选择排序插入排序希尔排序直接插入排序排序算法的运用概述排序算法交换排序快速排序冒泡排序选择排序堆排序直接选择排序插入排序希尔排序直接插入排序排序算法的运用
分类:
编程语言 时间:
2014-12-09 11:53:51
阅读次数:
185
#include #define LeftChild(i) ( 2 * ( i ))void PercDown( int A[] , int i , int N){ int Child; int Tmp ; for (Tmp = A[i]; LeftChild(i) A[...
分类:
编程语言 时间:
2014-12-08 17:27:16
阅读次数:
178
前几天处理工作方面的事情, 确实耽误了几天, 导致博客停更了, 今天上午看到算法导论的堆排序, 想用 C++ 实现下, 就当练练手了.算法导论里使用的是起始编号为 1 的容器, 那么实现的方法要不就是把 STL 容器打包, 自己建一个起始编号为 1 的容器, 要不就按照起始编号为 0 的来. 想了一...
分类:
编程语言 时间:
2014-12-07 17:48:17
阅读次数:
179
#include "iostream.h"
using namespace std;
//因为i从0开始
#define LeftChild(i) (2*(i)+1)
//i-N范围内,创建最大堆
void maxHeap(int A[], int i, int N){
int tmp;
int child;
for(tmp=A[i];LeftChild(i)<N;i=child){...
分类:
编程语言 时间:
2014-12-04 20:03:10
阅读次数:
218
堆排序堆排序_百度百科堆排序_维基百科堆_百度百科堆 (数据结构)_维基百科堆排序是和快排、归并排序一样常见的复杂度为o(nlogn)的算法,速度比较快。那么,要进行堆排序,首先要把n个数据进行最大堆化(也就是把整个数据整理成一个最大堆)这样子首元素就是数组最大的元素了。把它和最后的元素进行交换,那...
分类:
编程语言 时间:
2014-12-01 00:32:19
阅读次数:
287
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比...
分类:
编程语言 时间:
2014-11-30 00:19:29
阅读次数:
228
堆排序基本步骤:1:把无序序列构成一个堆。2:交换堆顶元素和最后一个元素,交换之后由于堆结构破坏,重置堆。初始化堆和交换后的重置堆区别在于:初始化堆时从最后一个非叶子结点开始调整结点位子,交换堆顶元素后的重置只需要调节堆顶元素的位子。0;$end--){//交换堆顶和最后的一个元素 $tmp = ....
分类:
编程语言 时间:
2014-11-29 18:54:17
阅读次数:
154
六大比较排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序和快速排序,伪代码与C语言实现
分类:
编程语言 时间:
2014-11-28 11:34:09
阅读次数:
273
http://blog.csdn.net/hguisu/article/details/7776068 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时....
分类:
编程语言 时间:
2014-11-25 18:12:37
阅读次数:
153