程序:查找与排序

2018-11-27 19:55

线性表在顺序存储结构与链式存储结构下的顺序查找算法: #include typedef int ET; void main() {

int a[99],b,i=0,j,k,x;

printf(\确定数组长度(1-100):\ scanf(\ for(i=0;i

printf(\请输入第%d个数:\ scanf(\ }

printf(\请输入要查找的元素:\ scanf(\ k=serch(a,b,x); if (k==-1)

printf(\数组中无查找的元素。\\n\

else printf(\您查找的元素是第- 个元素。\\n\}

int serch(v,n,x) int n;

ET v[],x; /*ET为线性表数据类型*/ {

int k=0;

while((k

有序线性表的对分查找算法: #include #define N 10 void main()

{

int a[N],i;

int bsearch(int [],int ,int ); printf(\请输入一个有序序列: \\n\ for(i=0;i

scanf(\

printf(\想要查找的元素在数组中的下标是:%d\\n\}

int bsearch(int v[],int n,int x) {

int i=1,j=n,k=0; while (i<=j) {

k=(i+j)/2; if(v[k-1]==x) return(k-1); if(v[k-1]>x) j=k-1; else i=k+1; }

return(-1); }

冒泡排序的算法: #include #define N 10 void main(void) {

int a[N],i;

int bubsort(int [],int );

printf(\请输入需要排序的数组序列: \\n\ for(i=0;i

scanf(\

printf(\排序前的数组序列:\\n\ for(i=0;i

printf(\ bubsort(a,N);

printf(\排序后的数组序列:\\n\ for(i=0;i

printf(\}

int bubsort(int p[],int n) {

int m,k=0,j,i,d; m=n-1;

while(k

j=m-1; m=0;

for(i=k;i<=j;i++) if(p[i]>p[i+1]) {

d=p[i];

p[i]=p[i+1]; p[i+1]=d; m=i; } j=k+1; k=0;

for(i=m;i>=j;i--) if(p[i-1]>p[i]) {

d=p[i]; p[i]=p[i-1]; p[i-1]=d; k=i; } } }

对无序序列P(m:n)进行的快速排序算法:

#include #define N 10 void main() {

int a[N],i,m=1;

printf(\请输入需要排序的序列: \\n\ for(i=0;i

scanf(\

printf(\排序前的序列:\\n\ for(i=0;i<=N-1;i++)

printf(\ qksortl(a,m,N);

printf(\排序后的序列:\\n\ for(i=0;i<=N-1;i++)

printf(\}

int qksortl(int p[],int m,int n) {

int i; if(n>m) {

i=split(p,m,n)+1; qksortl(p,m,i-1); qksortl(p,i+1,n); }

return(1); }

static int split(int p[],int m,int n) {

int i,j,k,u,t;

i=m-1,j=n-1,k=(i+j)/2;

if((p[i]>=p[j])&&(p[j]>=p[k])) u=j;

else if((p[i]>=p[k])&&(p[k]>=p[j])) u=k; else u=i; t=p[u]; p[u]=p[i]; while(i!=j) {

while((i=t)) j=j-1; if(i

}

p[i]=p[j]; i=i+1;

while((i

p[j]=p[i]; j=j-1; } } }

p[i]=t; return(i);

简单插入排序的算法: #include #define LEN 10 void main(void) {

void insort(int [],int ); int num[LEN];

printf(\请输入一组数作为数组元素:\\n\ for(int i=0;i

printf(\排序之前的数组序列如下:\\n\ for(i=0;i

printf(\ insort(num,LEN);

printf(\排序之后的数组序列如下:\\n\ for(i=0;i

printf(\}

void insort(int array[],int n) {

int j,k,temp; for(j=1;j

}

{ }

temp=array[j]; k=j-1;

while((k>=0)&&(array[k]>temp)) {

array[k+1]=array[k]; k--; }

array[k+1]=temp;


程序:查找与排序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:入党介绍人在入党积极分子转预备与预备党员转正的讲话稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: