排序即将一个无序的数组(序列)按照一定的规则排列,常见的规则便是按照从大到小或者从小到大的顺序。本文讨论的排序一律指按照从小到大的顺序进行排列的这种情况。 本文将分为上下两章介绍以下六种排序算法: (1)直接选择排序 (2)冒泡排序 (3)快速排序 (4)二分排序 (5)堆排序 (6)线性时间排序。 ...
分类:
编程语言 时间:
2016-03-31 23:25:04
阅读次数:
154
恢复内容开始 接算法的上一系列,在前几篇博客中,已经分析了 交换算法(冒泡排序,快速排序)、插入算法(直接插入排序,希尔排序),这一系列我们谈谈选择排序。 选择排序分为两种,一种是直接选择排序,一种是堆排序,下面我们看 直接选择排序: 百度百科: 选择排序(Selection sort)是一种简单直 ...
分类:
编程语言 时间:
2016-03-30 00:07:12
阅读次数:
407
堆排序是一种树形选择排序,是对直接选择排序的有效改进。 基本思想: 堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(
分类:
编程语言 时间:
2016-03-18 21:36:13
阅读次数:
200
简单选择排序也叫作直接选择排序
基本思想:每一趟在后面n-i+1个中选出关键字最小的记录,作为有序序列的第i个记录(1)设待排序的记录存放在数组r[1…n ]中,第一趟从r[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为r[k],交换r[1]和r[k].(2)第二趟从r[2]开始,通过n-2次比较,从n-1个记录中选出关键字最小的记录,记为r[k],交换r[1]和r[k]。(3)...
分类:
编程语言 时间:
2016-03-17 07:07:53
阅读次数:
201
选择排序—简单选择排序选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子系列的最后,直到全部记录排序完毕。简单选择排序也叫直接选择排序。基本算法:将给定待排序序列A[0....n],第一次从A[0]~A[n-1]中选取最小值,与A[0]交换,第二..
分类:
编程语言 时间:
2016-02-28 01:16:16
阅读次数:
248
分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 先来看看8种排序之间的关系: 1.直
分类:
编程语言 时间:
2016-02-26 16:44:34
阅读次数:
309
// 2016_2_24_select.cpp : Defines the entry point for the console application.// #include "stdafx.h" void SelectSort(int arr[],int n){ int temp; int k
分类:
编程语言 时间:
2016-02-24 12:09:10
阅读次数:
174
本文由网络资料整理而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序 不稳定:快速排序,希尔排序,
分类:
编程语言 时间:
2016-01-28 15:23:48
阅读次数:
257
比较型算法分为五类: 1、插入排序:直接插入排序、折半插入排序、希尔排序; 2、选择排序:直接选择排序、堆排序; 3、交换排序:快速排序、冒泡排序; 4、归并排序; 5、基数排序;比较分析: 1、插入排序的主旨是插入;将无序序列中的元素依次插入到有序序列中,知道无需序列为空为止; 2、...
分类:
编程语言 时间:
2016-01-02 16:09:38
阅读次数:
178