随笔分类 -  数据结构

摘要:在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法: (1)代入法(Substitution Method) 代入法的基本步骤是先推测递归方程的显式... 阅读全文
posted @ 2014-06-25 11:08 aoguren 阅读(377) 评论(0) 推荐(0)
摘要:一、排序方法分类 1、按照操作方式不同可以分为: 1)插入排序:直接插入排序、希尔排序 2)交换排序:冒泡排序、快速排序 3)选择排序:直接选择排序、堆排序 4)归并排序:归并排序 5)分配排序:桶排序、基数排序 2、按照平均时间不同可以分为: 1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序; ... 阅读全文
posted @ 2013-09-01 10:51 aoguren 阅读(792) 评论(0) 推荐(0)
摘要:前言 分配排序的基本思想:排序过程无须比较关键字,而是通过“分配”和“收集”过程来实现排序。 分配排序常见的算法有桶排序和基数排序。 一、桶排序 1、桶排序的基本思想 桶排序(Bucket Sort)也称箱排序(Bin Sort),其基本思想是:设置若干个桶,依次扫描待排序的记录R[0],R[1],…R[n-1],把关键字等于k的记录全都装入到第k个桶里(分配),然后按序号依次将各非空的... 阅读全文
posted @ 2013-09-01 09:30 aoguren 阅读(1937) 评论(0) 推荐(1)
摘要:前言 归并排序(Merge Sort)是利用“归并”技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。 一、两路归并排序算法 1、算法基本思路 设两个有序的子文件(相当于输入堆)放在同一向量中相邻的位置上:R[low..m],R[m+1…high],先将它们合并到一个局部的暂存向量R1(相当于输出堆)中,待合并完成后将R1复制回R[low…high]中。 2... 阅读全文
posted @ 2013-08-31 15:54 aoguren 阅读(948) 评论(0) 推荐(0)
摘要:前言1、选择排序(Selection Sort)的基本思想选择排序的基本思想:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。常用的选择排序方法有直接选择排序和堆排序。一、直接选择排序1、直接选择排序的基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。第1趟从R[0]~R[n-1]中选取最小值,与R[0]交换;第2趟从R[1]~R[n-1]中选取最小值,与R[1]交换;第i趟从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换;直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接插入排序是将 阅读全文
posted @ 2013-08-31 10:38 aoguren 阅读(3421) 评论(0) 推荐(0)
摘要:前言 1、插入排序(Insertion sort)的基本思想 1) 插入排序的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排序序的子文件的适当位置,直到全部记录插入完成为止。 2)插入排序方法的代表:直接插入排序和希尔排序 一、直接插入排序 1、直接插入排序的基本思想 假设带排序的记录存放在数组R[1…n]中。初始时,R[1]自成1个有序区,无序... 阅读全文
posted @ 2013-08-29 16:53 aoguren 阅读(555) 评论(0) 推荐(0)
摘要:前言:1、分治法的基本思想分治法的基本思想是将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解决这些子问题,然后将这些子问题的解组合为原问题的解。2、交换排序的基本思想1)交换排序的基本思想是两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。2)应用交换排序基本思想的主要有冒泡排序和快速排序。一、快速排序1、快速排序的基本思想设当前待排序的无序区为R[low…high],利用分治法可将快速排序的基本思想描述为:1. 分解 在R[low…high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low… 阅读全文
posted @ 2013-08-28 15:46 aoguren 阅读(1462) 评论(0) 推荐(0)