📄 pai xu wen ti.txt
字号:
1.直接插入法:
main( )
{ int a[20]; int i,n,length;
i=1;
length=0;
printf("输入待排序的元素:");
scanf("%d",&n);
while(n!=0)
{a[i]=n;
i++;
scanf("%d",&n);
length++;}
printf("直接插入法排序:");
InsertSort(a,length);
}
InsertSort(int a[],int length)
{ int i,j;
for(i=2;i<=length;i++)
{ j=i-1;
a[0]=a[i]; /*设置监视哨*/
while(a[0]<a[j]) /*查找a[i]的插入位置*/
{ a[j+1]=a[j];
j--;
}
a[j+1]=a[0];}
for(i=1;i<=length;i++)
printf("%d ",a[i]);
}
2.快速排序法:
main()
{ int a[20]; int i,n,length;
i=1;
length=0;
printf("输入待排序的元素(以!结束):");
scanf("%d",&n);
while(n!=0)
{a[i]=n;
i++;
scanf("%d",&n);
length++;}
printf("快速排序法排序:");
QuickSort(a,1,length);
for(i=1;i<=length;i++)
printf("%d ",a[i]);
}
QuickSort(int a[],int l,int h)
{ int k,i;
if(l<h)
{ k=QuickOnePass(a,l,h); /*将序列划分成两部分*/
QuickSort(a,l,k-1); /*对左子部分进行快速排序*/
QuickSort(a,k+1,h);} /*对右子部分进行快速排序*/
}
QuickOnePass(int a[],int low,int hight) /*一趟快速排序*/
{ int i,j;
i=low; j=hight;
a[0]=a[i];
while(i<j)
{ while((i<j)&&(a[j]>=a[0])) /*自当前j指针所指位置起向前进行逐个比较*/
j--;
if(i<j)
{ a[i]=a[j];
i++; }
while((i<j)&&(a[i]<=a[0])) /*自当前i指针所指位置起向前进行逐个比较*/
i++;
if(i<j)
{ a[j]=a[i];
j--; }
}
a[i]=a[0];
return(i);
}
3.冒泡排序法:
main()
{ int a[20]; int i,n,length;
i=1;
length=0;
printf("输入待排序的元素:");
scanf("%d",&n);
while(n!=0)
{a[i]=n;
i++;
scanf("%d",&n);
length++;}
printf("\n冒泡排序法排序:");
BubbleSort(a,length);
}
BubbleSort(int a[],int length)
{ int i,j,flag=1;
for(i=1;(i<length)&&(flag==1);i++)
{ flag=0;
for(j=1;j<=length-i;j++)
if(a[j]>a[j+1])
{flag=1;
a[0]=a[j];
a[j]=a[j+1];
a[j+1]=a[0];
}
}
for(i=1;i<=length;i++)
printf("%d ",a[i]);
}
4.选择排序法:
main()
{ int a[20]; int i,n,length;
i=1;
length=0;
printf("输入待排序的元素:");
scanf("%d",&n);
while(n!=0)
{a[i]=n;
i++;
scanf("%d",&n);
length++;}
printf("\n选择排序法排序:");
SelectSort(a,length);
}
SelectSort(int a[],int length)
{ int i,j,k;
for(i=1;i<length;i++)
{ k=i;
for(j=i+1;j<=length;j++)
if(a[j]<a[k])
k=j;
if(k!=i)
{ a[0]=a[k]; /*a[0]是中间变量*/
a[k]=a[i];
a[i]=a[0];}
}
for(i=1;i<=length;i++)
printf("%d ",a[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -