国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

排序的各種方法

2019-11-17 05:33:45
字體:
來源:轉載
供稿:網友

  #include "stdio.h"
#include "malloc.h"
#include "conio.h"
#define maxsize 5
typedef strUCt{
int key;
}redtype;
typedef struct{
redtype *r;
int length;
}sqlist;
;
;
;
void shellsort(sqlist l,int d)
{
int i,j;
d=l.length/2;
while(d>0)
{
for(i=d+1;i<=l.length;++i)
if(l.r[i].key<l.r[i-d].key)
{
l.r[0]=l.r[i];
for(j=i-d;j>0&&l.r[0].key<l.r[j].key;j-=d)
l.r[j+d]=l.r[j];
l.r[j+d]=l.r[0];}
d=d/2;}
}
;
;
;
void quicksort(sqlist l,int low,int high)
{int i,j;
if(low<high)
{i=low;j=high;l.r[0]=l.r[i];
do
{
while(i<j&&l.r[j].key>l.r[0].key)
--j;
if(i<j)
{l.r[i]=l.r[j];++i;}
while(i<j&&l.r[i].key<=l.r[0].key)
++i;
if(i<j){
l.r[j]=l.r[i];--j;
}
}while(i!=j);
l.r[i]=l.r[0];
quicksort(l,low,i-1);
quicksort(l,i+1,high);
}
}
;
;
;
void heapadjust(sqlist l,int s,int m)
{
int rc,j;
rc=l.r[s].key;
for(j=2*s;j<=m;j*=2)
{
if(j<m&&l.r[j].key<l.r[j+1].key)
j++;
if(rc>l.r[j].key)
break;
l.r[s].key=l.r[j].key;
s=j;
}
l.r[s].key=rc;
}
;
;
;
void heapsort(sqlist l)
{
int i,t;
for(i=l.length/2;i>0;i--)
heapadjust(l,i,l.length);
for(i=l.length;i>1;i--)
{
t=l.r[1].key,l.r[1].key=l.r[i].key,l.r[i].key=t;
heapadjust(l,1,i-1);
}
}
;
;
;
void oesort(sqlist l,int n)
{
int t,i,change;
change=1;
while(change)
{
change=0;
for(i=1;i<n;i+=2)
if(l.r[i].key>l.r[i+1].key)
{
t=l.r[i].key,l.r[i].key=l.r[i+1].key,l.r[i+1].key=t;
change=1;
}
for(i=2;i<n;i+=2)
if(l.r[i].key>l.r[i+1].key)
{
t=l.r[i].key,l.r[i].key=l.r[i+1].key,l.r[i+1].key=t;
change=1;
}
}
}
;
;
;
main()
{
int i,j,low,high,a[maxsize+1];
char ch;
sqlist l;
clrscr();
l.r=(redtype *)malloc(maxsize*sizeof(int));
if(!l.r)
l.length=0;
printf("/n/nplease input five elements:/n/n");
for(i=1;i<maxsize+1;i++)
{
scanf("%d",&a[i]);
l.length++;
}
getchar();
do
{
for(j=1,i=1;j<maxsize+1;i++,j++)
l.r[i].key=a[j];
printf("/n/nWelcome to use PanWeiFeng's KeChenSheJi/n/n");
printf("s:shellsort/tq:quicksort/n/n");
printf("h:heapsort/te:oesort/n/n");
printf("o:quit/n/n");
printf("please input the way:");
ch=getchar();
clrscr();
printf("/n/nthe orignal array:");
for(i=1;i<maxsize+1;i++)
printf("%d ",l.r[i].key);
printf("/n/n");
/*printf("please input the way:");
ch=getchar();*/
getchar();
switch(ch)
{
case 's':
shellsort(l,l.length);
printf("/n/nthe  odered  arry:");
for(i=1;i<maxsize+1;i++)
printf("%d ",l.r[i].key);
printf("/n/n");
break;
case 'q':
low=1;high=l.length;
quicksort(l,low,high);
printf("/n/nthe  odered  arry:");
for(i=1;i<maxsize+1;i++)
printf("%d ",l.r[i].key);
printf("/n/n");
break;
case 'h':
heapsort(l);
printf("/n/nthe  odered  arry:");
for(i=1;i<maxsize+1;i++)
printf("%d ",l.r[i].key);
printf("/n/n");
break;
case 'e':
oesort(l,l.length);
printf("/n/nthe  odered  arry:");
for(i=1;i<maxsize+1;i++)
printf("%d ",l.r[i].key);
printf("/n/n");
break;
case 'o':
exit(0);
default:
printf("/n/nerror!write again!/n");
}
}while(1);
}


點這里下載

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大理市| 当阳市| 乌拉特中旗| 邛崃市| 罗平县| 昌乐县| 吴忠市| 宕昌县| 泸西县| 平阴县| 贡嘎县| 常德市| 仁化县| 盐源县| 三都| 察雅县| 宾阳县| 西宁市| 清新县| 博爱县| 故城县| 定襄县| 灵丘县| 洪湖市| 梅州市| 盖州市| 枣强县| 青浦区| 易门县| 米脂县| 西乌珠穆沁旗| 张掖市| 江山市| 平江县| 堆龙德庆县| 金塔县| 丰宁| 五指山市| 宣城市| 资源县| 大渡口区|