📄 查找.c
字号:
MERGEP1(a1,b1,length);
length=2*length;
}
printf("对学号进行归并排序的结果为:\n");
fun2(a1);
}
INSORT2(b2) /*对年龄进行直接排序*/
person b2[];
{ int i,j;
for(i=2;i<Q+1;i++)
{ b2[0]=b2[i];
j=i-1;
while(b2[0].age<b2[j].age)
b2[j+1]=b2[j--];
b2[j+1]=b2[0];
}
printf("对年龄进行直接排序的结果为:\n");
fun2(b2);
}
BUBSORT2(b2) /*对年龄进行起泡排序*/
person b2[];
{ int i,j,noswap;
person temp;
for(i=1;i<Q;i++)
{ noswap=1;
for(j=Q-1;j>=i;j--)
if(b2[j+1].age<b2[j].age)
{ temp=b2[j+1];
b2[j+1]=b2[j];
b2[j]=temp;
noswap=0;
}
if(noswap)
break;
}
printf("对年龄进行起泡排序的结果为:\n");
fun2(b2);
}
int PARTION2(b2,l,h) /*对年龄进行快速排序*/
person b2[];
int l,h;
{ int i,j;
person temp;
i=l; j=h; temp=b2[i];
do
{ while((b2[j].age>=temp.age) && (i<j))
j--;
if(i<j)
b2[i++]=b2[j];
while((b2[i].age<=temp.age) && (i<j))
i++;
if(i<j)
b2[j--]=b2[i];
} while(i!=j);
b2[i]=temp;
return(i);
}
QUISORT2(b2,s1,t1)
person b2[];
int s1,t1;
{ int i,j;
if(s1<t1)
{ i=PARTION2(b2,s1,t1);
QUISORT2(b2,s1,i-1);
QUISORT2(b2,i+1,t1);
}
printf("对年龄进行快速排序的结果为:\n");
fun2(b2);
}
selsort2(b2) /*对年龄进行直接选择排序*/
person b2[];
{ int i,j,k;
person temp;
for(i=1;i<Q-1;i++)
{ k=i;
for(j=i+1;j<Q;j++)
if(b2[j].age<b2[k].age)
k=j;
if(k!=i)
{ temp=b2[i];
b2[i]=b2[k];
b2[k]=temp;
}
}
printf("对年龄进行直接选择排序的结果为:\n");
fun2(b2);
}
SIFT2(b2,i,m) /*对年龄进行堆排序*/
person b2[];
int i,m;
{ int j;
person temp;
temp=b2[i];
j=2*i;
while(j<=m)
{ if((j<m) && (b2[j].age<b2[j+1].age))
j++;
if(temp.age<b2[j].age)
{ b2[i]=b2[j];
i=j; j=2*i;
}
else
break;
}
b2[i]=temp;
}
HEASORT2(b2)
person b2[];
{ int i,j;
person temp;
for(i=Q/2;i>=1;i--)
SIFT2(b2,i,Q);
for(i=Q;i>=1;i--)
{ temp=b2[1];
b2[1]=b2[i];
b2[i]=temp;
SIFT2(b2,1,i-1);
}
printf("对年龄进行堆排序的结果为:\n");
fun2(b2);
}
MERGE2(b2,a2,low,mid,high) /*对年龄进行归并排序*/
person b2[];
person a2[];
int low,mid,high;
{ int i,j,k;
low=1; mid=Q/2+1; high=Q;
i=low; j=mid; k=low;
while((i<=Q/2) && (j<=high))
if(b2[i].age<=b2[j].age)
a2[k++]=b2[i++];
else
a2[k++]=b2[j++];
while(i<=Q)
a2[k++]=b2[i++];
while(j<=Q)
a2[k++]=b2[j++];
}
MERGEP2(b2,a2,length)
person b2[];
person a2[];
int length;
{ int i,j;
i=0;
while(i+2*length-1<Q+1)
{ MERGE2(b2,a2,i,i+length-1,i+2*length-1);
i=i+2*length;
}
if(i+length-1<Q)
MERGE2(b2,a2,i,i+length-1,Q);
else
for(j=i;j<Q+1;j++)
a2[j]=b2[j];
}
MERGES2(b2)
person b2[];
{ int length;
length=1;
while(length<Q+1)
{ MERGEP2(b2,a2,length);
length=2*length;
MERGEP2(a2,b2,length);
length=2*length;
}
printf("对年龄进行归并排序的结果为:\n");
fun2(a2);
}
INSORT3(b3) /*对数据结构进行直接排序*/
person b3[];
{ int i,j;
for(i=2;i<Q+1;i++)
{ b3[0]=b3[i];
j=i-1;
while(b3[0].cour[0]<b3[j].cour[0])
b3[j+1]=b3[j--];
b3[j+1]=b3[0];
}
printf("对数据结构进行直接排序的结果为:\n");
fun2(b3);
}
BUBSORT3(b3) /*对数据结构进行起泡排序*/
person b3[];
{ int i,j,noswap;
person temp;
for(i=1;i<Q;i++)
{ noswap=1;
for(j=Q-1;j>=i;j--)
if(b3[j+1].cour[0]<b3[j].cour[0])
{ temp=b3[j+1];
b3[j+1]=b3[j];
b3[j]=temp;
noswap=0;
}
if(noswap)
break;
}
printf("对数据结构进行起泡排序的结果为:\n");
fun2(b3);
}
int PARTION3(b3,l,h) /*对数据结构进行快速排序*/
person b3[];
int l,h;
{ int i,j;
person temp;
i=l; j=h; temp=b3[i];
do
{ while((b3[j].cour[0]>=temp.cour[0]) && (i<j))
j--;
if(i<j)
b3[i++]=b3[j];
while((b3[i].cour[0]<=temp.cour[0]) && (i<j))
i++;
if(i<j)
b3[j--]=b3[i];
} while(i!=j);
b3[i]=temp;
return(i);
}
QUISORT3(b3,s1,t1)
person b3[];
int s1,t1;
{ int i,j;
if(s1<t1)
{ i=PARTION3(b3,s1,t1);
QUISORT3(b3,s1,i-1);
QUISORT3(b3,i+1,t1);
}
printf("对数据结构进行快速排序的结果为:\n");
fun2(b3);
}
selsort3(b3) /*对数据结构进行直接选择排序*/
person b3[];
{ int i,j,k;
person temp;
for(i=1;i<Q-1;i++)
{ k=i;
for(j=i+1;j<Q;j++)
if(b3[j].cour[0]<b3[k].cour[0])
k=j;
if(k!=i)
{ temp=b3[i];
b3[i]=b3[k];
b3[k]=temp;
}
}
printf("对数据结构进行直接选择排序的结果为:\n");
fun2(b3);
}
SIFT3(b3,i,m) /*对数据结构进行堆排序*/
person b3[];
int i,m;
{ int j;
person temp;
temp=b3[i];
j=2*i;
while(j<=m)
{ if((j<m) && (b3[j].cour[0]<b3[j+1].cour[0]))
j++;
if(temp.cour[0]<b3[j].cour[0])
{ b3[i]=b3[j];
i=j; j=2*i;
}
else
break;
}
b3[i]=temp;
}
HEASORT3(b3)
person b3[];
{ int i,j;
person temp;
for(i=Q/2;i>=1;i--)
SIFT3(b3,i,Q);
for(i=Q;i>=1;i--)
{ temp=b3[1];
b3[1]=b3[i];
b3[i]=temp;
SIFT3(b3,1,i-1);
}
printf("对数据结构进行堆排序的结果为:\n");
fun2(b3);
}
MERGE3(b3,a3,low,mid,high) /*对数据结构进行归并排序*/
person b3[];
person a3[];
int low,mid,high;
{ int i,j,k;
low=1; mid=Q/2+1; high=Q;
i=low; j=mid; k=low;
while((i<=Q/2) && (j<=high))
if(b3[i].cour[0]<=b3[j].cour[0])
a3[k++]=b3[i++];
else
a3[k++]=b3[j++];
while(i<=Q)
a3[k++]=b3[i++];
while(j<=Q)
a3[k++]=b3[j++];
}
MERGEP3(b3,a3,length)
person b3[];
person a3[];
int length;
{ int i,j;
i=0;
while(i+2*length-1<Q+1)
{ MERGE3(b3,a3,i,i+length-1,i+2*length-1);
i=i+2*length;
}
if(i+length-1<Q)
MERGE3(b3,a3,i,i+length-1,Q);
else
for(j=i;j<Q+1;j++)
a3[j]=b3[j];
}
MERGES3(b3)
person b3[];
{ int length;
length=1;
while(length<Q+1)
{ MERGEP3(b3,a3,length);
length=2*length;
MERGEP3(a3,b3,length);
length=2*length;
}
printf("对数据结构进行归并排序的结果为:\n");
fun2(a3);
}
INSORT4(b4) /*对概率进行直接排序*/
person b4[];
{ int i,j;
for(i=2;i<Q+1;i++)
{ b4[0]=b4[i];
j=i-1;
while(b4[0].cour[1]<b4[j].cour[1])
b4[j+1]=b4[j--];
b4[j+1]=b4[0];
}
printf("对概率进行直接排序的结果为:\n");
fun2(b4);
}
BUBSORT4(b4) /*对概率进行起泡排序*/
person b4[];
{ int i,j,noswap;
person temp;
for(i=1;i<Q;i++)
{ noswap=1;
for(j=Q-1;j>=i;j--)
if(b4[j+1].cour[1]<b4[j].cour[1])
{ temp=b4[j+1];
b4[j+1]=b4[j];
b4[j]=temp;
noswap=0;
}
if(noswap)
break;
}
printf("对概率进行起泡排序的结果为:\n");
fun2(b4);
}
int PARTION4(b4,l,h) /*对概率进行快速排序*/
person b4[];
int l,h;
{ int i,j;
person temp;
i=l; j=h; temp=b4[i];
do
{ while((b4[j].cour[1]>=temp.cour[1]) && (i<j))
j--;
if(i<j)
b4[i++]=b4[j];
while((b4[i].cour[1]<=temp.cour[1]) && (i<j))
i++;
if(i<j)
b4[j--]=b4[i];
} while(i!=j);
b4[i]=temp;
return(i);
}
QUISORT4(b4,s1,t1)
person b4[];
int s1,t1;
{ int i,j;
if(s1<t1)
{ i=PARTION4(b4,s1,t1);
QUISORT4(b4,s1,i-1);
QUISORT4(b4,i+1,t1);
}
printf("对概率进行快速排序的结果为:\n");
fun2(b4);
}
selsort4(b4) /*对概率进行直接选择排序*/
person b4[];
{ int i,j,k;
person temp;
for(i=1;i<Q-1;i++)
{ k=i;
for(j=i+1;j<Q;j++)
if(b4[j].cour[1]<b4[k].cour[1])
k=j;
if(k!=i)
{ temp=b4[i];
b4[i]=b4[k];
b4[k]=temp;
}
}
printf("对概率进行直接选择排序的结果为:\n");
fun2(b4);
}
SIFT4(b4,i,m) /*对概率进行堆排序*/
person b4[];
int i,m;
{ int j;
person temp;
temp=b4[i];
j=2*i;
while(j<=m)
{ if((j<m) && (b4[j].cour[1]<b4[j+1].cour[1]))
j++;
if(temp.cour[1]<b4[j].cour[1])
{ b4[i]=b4[j];
i=j; j=2*i;
}
else
break;
}
b4[i]=temp;
}
HEASORT4(b4)
person b4[];
{ int i,j;
person temp;
for(i=Q/2;i>=1;i--)
SIFT4(b4,i,Q);
for(i=Q;i>=1;i--)
{ temp=b4[1];
b4[1]=b4[i];
b4[i]=temp;
SIFT4(b4,1,i-1);
}
printf("对概率进行堆排序的结果为:\n");
fun2(b4);
}
MERGE4(b4,a4,low,mid,high) /*对概率进行归并排序*/
person b4[];
person a4[];
int low,mid,high;
{ int i,j,k;
low=1; mid=Q/2+1; high=Q;
i=low; j=mid; k=low;
while((i<=Q/2) && (j<=high))
if(b4[i].cour[1]<=b4[j].cour[1])
a4[k++]=b4[i++];
else
a4[k++]=b4[j++];
while(i<=Q)
a4[k++]=b4[i++];
while(j<=Q)
a4[k++]=b4[j++];
}
MERGEP4(b4,a4,length)
person b4[];
person a4[];
int length;
{ int i,j;
i=0;
while(i+2*length-1<Q+1)
{ MERGE4(b4,a4,i,i+length-1,i+2*length-1);
i=i+2*length;
}
if(i+length-1<Q)
MERGE4(b4,a4,i,i+length-1,Q);
else
for(j=i;j<Q+1;j++)
a4[j]=b4[j];
}
MERGES4(b4)
person b4[];
{ int length;
length=1;
while(length<Q+1)
{ MERGEP4(b4,a4,length);
length=2*length;
MERGEP4(a4,b4,length);
length=2*length;
}
printf("对概率进行归并排序的结果为:\n");
fun2(a4);
}
INSORT5(b5) /*对外语进行直接排序*/
person b5[];
{ int i,j;
for(i=2;i<Q+1;i++)
{ b5[0]=b5[i];
j=i-1;
while(b5[0].cour[2]<b5[j].cour[2])
b5[j+1]=b5[j--];
b5[j+1]=b5[0];
}
printf("对外语进行直接排序的结果为:\n");
fun2(b5);
}
BUBSORT5(b5) /*对外语进行起泡排序*/
person b5[];
{ int i,j,noswap;
person temp;
for(i=1;i<Q;i++)
{ noswap=1;
for(j=Q-1;j>=i;j--)
if(b5[j+1].cour[2]<b5[j].cour[2])
{ temp=b5[j+1];
b5[j+1]=b5[j];
b5[j]=temp;
noswap=0;
}
if(noswap)
break;
}
printf("对外语进行起泡排序的结果为:\n");
fun2(b5);
}
int PARTION5(b5,l,h) /*对外语进行快速排序*/
person b5[];
int l,h;
{ int i,j;
person temp;
i=l; j=h; temp=b5[i];
do
{ while((b5[j].cour[2]>=temp.cour[2]) && (i<j))
j--;
if(i<j)
b5[i++]=b5[j];
while((b5[i].cour[2]<=temp.cour[2]) && (i<j))
i++;
if(i<j)
b5[j--]=b5[i];
} while(i!=j);
b5[i]=temp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -