数据结构
偶尔e网事
折腾族:https://fusijie.github.io
展开
-
【数据结构之排序3】希尔排序
希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。希尔排序基本思想基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d2该方法实质上是一种分组插入方法。给定实例的shell排序的排序过程转载 2013-10-21 16:07:30 · 2198 阅读 · 0 评论 -
【数据结构之排序2】直接插入排序
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。本节介绍两种插入排序方法:直接插入排序和希尔排序。直接插入排序基本思想1.基本思想假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次转载 2013-10-21 15:49:08 · 2599 阅读 · 0 评论 -
【数据结构之排序9】箱排序
分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序.它们的时间复杂度可达到线性阶:O(n)。本节介绍第一种分配排序方法:箱排序。1、箱排序的基本思想箱排序也称桶排序(Bucket Sort),其基本思想是:设置若干个箱子,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字等于k的记录全都装入到第k个箱子里(分配),然后按序号依次转载 2013-10-22 11:04:31 · 2118 阅读 · 0 评论 -
【数据结构之排序8】归并排序
归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。两路归并算法1、算法基本思路设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1..high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回R[low..high]中。(1)转载 2013-10-22 10:52:27 · 2262 阅读 · 0 评论 -
【数据结构之排序5】快速排序
1、算法思想快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1)分治法的基本思想分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。(2)快速排序的基本思想设当前待排序的无序转载 2013-10-21 16:52:26 · 2786 阅读 · 0 评论 -
【数据结构之排序11】各种内部排序方法的比较和选择
按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间的常数,即0(4)线性阶(O(n))排序 如桶、箱和基数排序。各种排序方法比较简单转载 2013-10-23 11:54:04 · 3168 阅读 · 0 评论 -
【数据结构之排序4】冒泡排序
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。本文介绍第一种交换排序方法:冒泡排序。1、排序方法将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本转载 2013-10-21 16:31:07 · 1919 阅读 · 0 评论 -
【数据结构之排序10】基数排序
基数排序(Radix Sort)是对箱排序的改进和推广。1、单关键字和多关键字文件中任一记录R[i]的关键字均由d个分量 构成。若这d个分量中每个分量都是一个独立的关键字,则文件是多关键字的(如扑克牌有两个关键字:点数和花色);否则文件是单关键字的, (0≤j多关键字中的每个关键字的取值范围一般转载 2013-10-22 11:11:07 · 2046 阅读 · 0 评论 -
【数据结构之排序1】排序的基本概念
排序(sort)或分类所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下:输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn。输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。1.被排序对象--文件被排序的对象--文件由一组记录组成。记录则由若干个数转载 2013-10-21 15:41:52 · 2885 阅读 · 0 评论 -
【数据结构之排序6】直接选择排序
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。常用的选择排序方法有直接选择排序和堆排序。本节介绍第一种选择排序:直接选择排序。1、直接选择排序的基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初始状态:无序区为R[1..n],有序区为空。转载 2013-10-21 17:04:53 · 1705 阅读 · 0 评论 -
【数据结构之排序7】堆排序
本节介绍第二种选择排序:直接选择排序。1、 堆排序定义n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例】关键字序列(10,15,56,25,30,70转载 2013-10-21 17:27:36 · 2531 阅读 · 0 评论