Data structure
文章平均质量分 79
xiegenwendada
这个作者很懒,什么都没留下…
展开
-
数据结构---队列链表c实现
#include #include typedef int elemType;#define maxsize 100struct Quenue { elemType date; struct Quenue *next;};struct QuenueLK { struct Quenue *front; struct Quenue *rear;};原创 2012-04-07 14:10:40 · 362 阅读 · 0 评论 -
归并排序(Merge)
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,转载 2013-01-10 17:19:42 · 914 阅读 · 0 评论 -
堆排序
堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。 目录堆排序原理及分析起源1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap Sort )“堆”定义n转载 2013-01-10 17:15:08 · 378 阅读 · 0 评论 -
快速排序(QuickSort)
快速排序(QuickSort)1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1)分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的转载 2013-01-10 15:31:09 · 790 阅读 · 1 评论 -
冒泡排序
交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。冒泡排序1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的转载 2013-01-10 15:29:17 · 433 阅读 · 0 评论 -
希尔排序(Shell Sort)
希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。希尔排序基本思想 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插人排序;然后,取第二个增量d21重复上述的分组和排序,直至所取的增量dt=1(dtdt-l21),即所有记录放在转载 2013-01-10 15:27:18 · 420 阅读 · 0 评论 -
选择排序(Selection Sort)
选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 常用的选择排序方法有直接选择排序和堆排序。直接选择排序(Straight Selection Sort)1、直接选择排序的基本思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:转载 2013-01-10 15:32:10 · 355 阅读 · 0 评论 -
各种排序方法比较
按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排序 £是介于0和1之间的常数,即0(4)线性阶(O(n))排序 如桶、箱和基数排序。各种排序方法比较转载 2013-01-10 15:40:56 · 399 阅读 · 0 评论 -
直接插入排序
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 本节介绍两种插入排序方法:直接插入排序和希尔排序。 直接插入排序基本思想1、基本思想 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i转载 2013-01-10 15:23:55 · 376 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2013-01-07 14:49:24 · 276 阅读 · 0 评论 -
常见的链表题目
一些常见的单链表题目,总结思路和实现代码。1.单链表的反序2.给单链表建环3.检测单链表是否有环4.给单链表解环5.检测两条链表是否相交6.不输入头节点,删除单链表的指定节点(只给定待删除节点指针)1.单链表的反序//逆转链表,并返回逆转后的头节点node* reverse(node *head){ if(head == NULL ||转载 2013-01-07 15:15:20 · 327 阅读 · 0 评论 -
数据结构---栈顺序表c实现
#include #include typedef int elemType;struct stack{ elemType *list; int top; int maxsize;};void againMalloc(struct stack *s){ elemType *p; p = realloc(s->list, 2*s->maxsize*size原创 2012-04-07 14:12:47 · 362 阅读 · 0 评论 -
数据结构---栈链表c实现
#include #include typedef int elemType;struct stack{ elemType date; struct stack *next;};void initStack(struct stack* *s){ *s = NULL; return ;}void push(struct stack* *s,ele原创 2012-04-07 14:12:09 · 345 阅读 · 0 评论 -
数据结构---串实现 13-15函数未实现
#include #include /*定义单链表结构体*/#define MAXSTRLEN 255 #define TRUE 1#define FALSE 0struct sstring{ char *ch; int length ;};void StrAssign (struct sstring *T,char x)//初始条件:chars原创 2012-04-07 14:15:58 · 493 阅读 · 0 评论 -
数据结构---顺序表c实现
#include #include typedef int elemType;struct List{ elemType *list; int size; int maxsize;};void againMalloc(struct List *L);/*0.扩展函数*/void initList(struct List *L, int ms);/*1.初始化线性原创 2012-04-07 14:14:29 · 456 阅读 · 0 评论 -
数据结构---单链表c实现
#include #include #define NN 12#define MM 20typedef int elemType;struct sNode { elemType date; struct sNode *next;};/* 函数定义 */原创 2012-04-07 14:13:38 · 442 阅读 · 0 评论 -
数据结构---队列顺序表c实现
#include #include typedef int elemType;#define maxsize 100struct Quenue { elemType *date; int front; int rear;};void InitQueue(struct Quenue *q){ q->date = malloc(maxsize * sizeo原创 2012-04-07 14:11:34 · 431 阅读 · 0 评论 -
箱排序(Bin Sort)
分配排序的基本思想:排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序.它们的时间复杂度可达到线性阶:O(n)。箱排序(Bin Sort)1、箱排序的基本思想 箱排序也称桶排序(Bucket Sort),其基本思想是:设置若干个箱子,依次扫描待排序的记录R[0],R[1],…,R[n-1],把关键字等于k的记录全都装入到第k个箱子里(分配),然后按序号依次转载 2013-01-10 17:24:58 · 2282 阅读 · 0 评论