摘要:排序方法 平均时间 最坏时间 辅助存储
简单排序 O(n2) O(n2) O(1)
快速排序 O(nlogn) O(n2) O(logn)
堆排序 O(nlogn) O(nlogn) O(1)
归并排序 O(nlogn) O(nlogn) O(n)
基数排序 O(d(n+rd)) O(d(n+rd)) O(rd)
阅读全文
随笔分类 - 数据结构与算法基础
摘要:查找,也称为检索,是计算机操作中最普通最费时的操作之一。所谓查找,就是根据给定的值(target),在一个表中查找出等于target的数据元素,若表中有这样的元素,则称查找是成功的,并指出该元素在表中的位置;若表中不存在这样的元素,则称查找是不成功的,或称查找失败,并且给出相应的提示。
阅读全文
摘要:对于2009年上半年软件设计师下午试题的一个分析,对于第五个空很多网上给出的答案都是ptr->rchild,本人认为应为q->elem->rchild,因为此时ptr已为空,ptr->rchild会报错,以下为本人写的测试程序,在c++ builder中测试通过//---------------------------------------------------------------------------#pragma hdrstop//---------------------------------------------------------------
阅读全文
摘要://有个例子,参考一下;
#include
#include
#include
#include
阅读全文
摘要:/*
* 文件名: 1_3.c(选做题)
* 实验环境: Turbo C 2.0
* 完成时间: 2003年2月22日
*--------------------------------------------------------------------
* 改进说明: 可以实现多个多项式的加法、减法、乘法,并且比书中算法更加
* 合理. 例如: 连加a+b+c+d,连减a-b-c-d,连乘a*b*c*d.
*/
阅读全文
摘要:基数排序的C语言描述:#include<stdio.h>typedef struct{ int num; int next;}slcell; //静态链表的结点类型#define M 10int f[M];int e[M];int head=0;void distribute(slcell *a,int w){ int i; int last; for(i=0;i<10;i++) f[i]=-1; for(i=head;i!=-1;i=a[i].next) { last=(a[i].num/w)%10; if(f[last]==-1)f[last]=i;elsea[e[las
阅读全文
摘要:#include<stdio.h>#include<malloc.h>#define ERROR 0#define TRUE 1#define FALSE 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef int Status;struct STACK{ SElemType num; SElemType *base; SElemType *top; int stac
阅读全文