1:简单选择排序2:堆排序 3:冒泡排序4:归并排序5:基数排序6:快速排序 方法实现: ...
分类:
编程语言 时间:
2017-05-12 17:25:58
阅读次数:
192
#include #include using namespace std; void MinHeapFixdown(int a[], int i, int n)//调整堆 { int j, temp; temp = a[i]; j = 2 * i + 1;//i节点的左孩子节点 while (j ... ...
分类:
编程语言 时间:
2017-05-12 01:43:30
阅读次数:
213
package wangChaoPA实习工作练习.com.进阶篇.排序;import java.util.ArrayList;/** * * <p> * 描述该类情况 {@link 代表跟谁有关系} * </p> * * @author 王超 * @since 1.0 * @date 2017年5月 ...
分类:
编程语言 时间:
2017-05-10 19:49:54
阅读次数:
208
堆是一种特殊的完全二叉树,其特点是所有父节点都比子节点要小,或者所有父节点都比字节点要大。前一种称为最小堆,后一种称为最大堆。 比如下面这两个: 那么这个特性有什么作用?既然题目是堆排序,那么肯定能用来排序。想要用堆排序首先要创建一个堆,如果对4 3 6 2 7 1 5这七个数字做从小到大排序,需要 ...
分类:
编程语言 时间:
2017-05-10 17:54:30
阅读次数:
257
常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:选择排序选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2)的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用..
分类:
编程语言 时间:
2017-05-10 17:51:09
阅读次数:
282
冒泡排序: 选择排序: 插入排序: 快速排序: 归并排序: 堆排序: 希尔排序: ...
分类:
编程语言 时间:
2017-05-09 21:40:47
阅读次数:
249
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基 ...
分类:
编程语言 时间:
2017-05-08 12:25:35
阅读次数:
281
#include void swap(int *x, int *y) { int tmp = *x; *x = *y; *y = tmp; } // 将index为根的树调整成对大堆 void HeapAdjust(int *array, int index, int length) { int n... ...
分类:
编程语言 时间:
2017-05-07 01:08:10
阅读次数:
190
4.堆排序:(大根堆) ①将存放在array[0,...,n-1]中的n个元素建成初始堆; ②将堆顶元素与堆底元素进行交换,则序列的最大值即已放到正确的位置; ③但此时堆被破坏,将堆顶元素向下调整使其继续保持大根堆的性质,再重复第②③步,直到堆中仅剩下一个元素为止。 堆排序算法的性能分析: 空间复杂 ...
分类:
编程语言 时间:
2017-05-07 00:09:48
阅读次数:
198
package com.sxt.review; /*内部排序:(在内存) * 插入排序-->希尔排序 * 冒泡排序-->快速排序 * 选择排序-->堆排序 * 归并排序 * 基数排序 * 外部排序:(排序过程需访问外存) */ import java.util.Arrays; public clas... ...
分类:
编程语言 时间:
2017-05-06 15:03:50
阅读次数:
177