摘要: 利用线性表实现队列,为了有效利用空间,将其设计为循环结构,防止假溢出;牺牲一个存储单元以区分队空、队满。设front队头,rear队尾,N为顺序表大小队空:rear==front队满:(rear+1)%N==front#include#define Elemtype int#define N 100... 阅读全文
posted @ 2014-10-10 23:28 xiaoluo91 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 选择排序(假设递增排序)每次选取从当前结点到末尾结点中最小的一个与当前结点交换,每一轮固定一个元素位置。时间复杂度O(n^2),空间复杂度O(1)。下面的示例代码以带头结点的链表为存储结构:#include#include#define Elemtype doublestruct Node{ Ele... 阅读全文
posted @ 2014-10-10 20:32 xiaoluo91 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 归并排序是基于分治思想的排序,一递增排序为例:首先将数组平分为两份,将左侧递增排序,右侧递增排序,然后将两侧归并起来,使整体递增有序。示例代码如下:#include#include#define Elemtype intElemtype *B;void merge(Elemtype A[],int ... 阅读全文
posted @ 2014-10-10 11:11 xiaoluo91 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 快速排序是基于分治思想的排序,以递增排序为例:首先选取一个基准元素pivot,将小于pivot的元素移到其左侧,大于pivot的元素移到其右侧。这一轮固定了pivot的位置。然后对其左右两侧执行相同的操作。快速排序平均时间复杂度O(nlogn),最差时间复杂度O(n^2);空间复杂度O(1)。示例代... 阅读全文
posted @ 2014-10-10 11:05 xiaoluo91 阅读(195) 评论(0) 推荐(0) 编辑