1、二叉树的定义与性质 2、广域网及接入技术 1、图的遍历 2、网络服务器搭建 1、直接插入排序 2、安装Windowsserver2008 《稻草人手记》 1、冒泡排序 2、DHCP 1、简单选择排序 2、FTP 《设计类专业美术基础教程》 ...
分类:
其他好文 时间:
2016-06-13 21:51:47
阅读次数:
150
简单排序算法:每一趟选择最小的与该趟第一个数交换,而不动其他数。 例如 3,8,2,5,7第1趟:2与3交换 2,8,3,5,7 第2趟:3与8交换 2,3,8,5,7 第3趟:5与8交换 2,3,5,8,7 第4趟:7与8交换 2,3,5,7,8 关键点在于:保持其他数不动,只把索引为0的数(第一 ...
分类:
编程语言 时间:
2016-05-27 16:40:29
阅读次数:
170
都是基于内存的排序算法,包括插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序 14年在网易Blog上写的,现把它放到这里。 一,直接插入排序 总体思路:位于表中后面的元素依次与表中前面的元素比较,若比之小,则还需继续和更前面的元素比较,直至遇到一个比它大的元素或者比较到第一个元 ...
分类:
编程语言 时间:
2016-05-22 21:29:07
阅读次数:
250
JAVA当中有以下几种常见排序算法:插入排序(直接插入排序、链表插入排序、分段/二分/折半插入排序、希尔排序/缩小增量排序)、冒泡排序、快速排序、简单选择排序、归并排序、二叉树排序、基数排序等。
(1)复杂度比较
表1 几种常见排序算法的复杂度
算法名称
平均情况
最好情况
最坏情况
辅助空间
直接...
分类:
编程语言 时间:
2016-05-18 19:48:41
阅读次数:
240
堆排序1. 堆:
1. 一种完全二叉树。
2. 每个结点的值都大于或等于其左右子结点的值,大顶堆。
3. 小顶堆同理。
2. 是简单选择排序的一种改进:把每次比较的结果用堆来保存起来。
3. 堆排序(大顶堆):
1. 将待排序列构造成一个大顶堆。
2. 将堆顶和待排序列最后一个元素交换,也就是保存起来。
3. 将剩余的序列(去除最后一个元素)重新构造成...
分类:
编程语言 时间:
2016-05-18 19:41:07
阅读次数:
175
堆排序是对简单选择排序算法的一种改进。可以构建大顶堆(每个结点的值都大于等于其左右孩子的值)也可以构建小顶堆(每个结点的值都小于等于其左右孩子的值)。堆排自我感觉代码理解起来还是有点难,主要是如何构建一个新堆以及输出堆顶元素后,怎样调整剩余元素成为一个新堆。 1、堆排代码 2、堆调整代码 堆排测试完 ...
分类:
编程语言 时间:
2016-05-11 16:39:04
阅读次数:
205
#include
using namespace std;
template
void Swap(T & left, T & right) {
T temp = left;
left = right;
right = temp;
}
/* 简单选择排序 */
template
void SelectSort(T * arr, int n) {
for (i...
分类:
编程语言 时间:
2016-05-07 08:29:17
阅读次数:
167
一、选择排序的问题如果有n个数排序,简单排序需要选取一个极值(最大值或者最小值)需要比较n-1次。但是,每一轮比较并没有把以前比较过的结果保存下来,导致下一轮比较的时候会有比较过的数据继续比较大小,这其实影响了效率,做了很多无用功。堆排序是对简单选择排序的改进..
分类:
编程语言 时间:
2016-04-27 07:02:17
阅读次数:
398
Java中的经典算法之选择排序(SelectionSort) a) 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序 ...
分类:
编程语言 时间:
2016-04-23 11:31:14
阅读次数:
168