教案程序代码查找与排序_顺序与排序教案幼儿园

2020-02-29 教案模板 下载本文

教案程序代码查找与排序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“顺序与排序教案幼儿园”。

一、查找

1、顺序查找

int search(ET v[], int n , ET x){ int k=0;while(k

2、二分法查找

int bsearch(ET v[] , int n, ET x){ int i, j, k;while(i

3、分块查找

struct indnode { int key;int k;};int insearch(ET v[], struct indnode s[], int n, int m, ET x){ int i, j, t;i=0;j=m-1;while(i

if(x

else if(x>s[t].key)i=t+1;} if(it)j=-1;return(j);}

二、排序

1、双向冒泡

void bubsort(ET p[], int n)

{ int m, k, j, i;ET d;

k=0;m=n-1;

while(k

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;} } }

2、快速排序1 void qksort(ET p[], int m, int n){ int i;if(n>m)

{ i=split(p, m, n);

qksort(p, m, i-1);qksort(p, i+1, n);}

return;} static int split(ET p[], int m , int n){ int I, j, k, u;ET 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

while(i

if(i

3、快速排序2 void quicksort(int p[],int left,int right){

int i, j, t;

i=left;j=right;t=p[i];

while(i

{

}

p[i]=t;

outtable(p);

if(left

if(j

4、直接插入排序

void insort(ET p[], int n)

{ int j, k;ET t;

for(j=1;j

{ t=p[j];

k=j-1;

while(k>=0 && p[k]>t)

{ p[k+1]=p[k];k=k-1;}

p[k+1]=t;} }

5、希尔排序

void shlsort(ET p[], int n){ int h, j, k;ET t;

h=h/2;

while(h>0)

{ for(j=h;j

{ t=p[j];

k=j-h;

while(k>=0 && p[k]>t)

{ p[k+h]=p[k];k=k-h;}

p[k+h]=t;} h=h/2;} }

6、选择排序

void select(ET p[], int n){ int i, j, k;ET d;for(i=0;i

while((it))j--;if(i

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

} while((i

} for(j=i+1;j

7、堆排序

void heap(ET p[], int n){ int i, k;ET t;

k=n/2;

for(i=k-1;i>=0;i--)sift(p, n-1, i);

for(i=n-1;i>=1;i--)

{ t=p[0];p[0]=p[i];p[i]=t;

sift(p, i-1, 0);

}

return;}

static sift(ET A[], int n, int m)

{ int j;ET t;

t=h[m];j=2*(m+1)-1;while(j

如有打错的地方请指出。

《教案程序代码查找与排序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
教案程序代码查找与排序
点击下载文档
相关专题 顺序与排序教案幼儿园 教案 程序代码 顺序与排序教案幼儿园 教案 程序代码
[教案模板]相关推荐
    [教案模板]热门文章
      下载全文