//选择排序
#include <stdio.h>
main()
{
int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b;
for(i=0;i<=9;i++)
{
k=i;
for(j=i+1;j<=9;j++)
if(a[k]<a[j])
{
k=j;//第一轮:1<3 k=1,a[k]=3;3<99 k=2,a[k]=99;99>1,99>4,99>7,99>6,选出最大值99;第二轮选出7,依次类推
}
if(i!=k)
{
t=a[i];a[i]=a[k];a[k]=t;
}
for(b=0;b<=9;b++)
{
printf("%3d",a[b]);//显示每一轮的选择结果
}
printf("\n");
}
for(i=0;i<=9;i++)
{
printf("%4d",a[i]);
}
getchar();
}
//冒泡排序
#include <stdio.h>
main()
{
int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b;
for(i=0;i<=9;i++)
{
for(j=0;j<9-i;j++)
if(a[j]>=a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
for(b=0;b<=9;b++)
{
printf("%d,",a[b]);//显示每一轮的排序结果
}
printf("\n");
}
for(i=0;i<=9;i++)
{
printf("%4d",a[i]);
}
getchar();
}
![]()
//冒泡排序内循环小于等于结果意外
#include <stdio.h>
main()
{
int a[10]={1,3,99,1,4,7,2,3,1,6},i,j,k,t,b;
for(i=0;i<=9;i++)
{
for(j=0;j<=9-i;j++)
if(a[j]>=a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
for(b=0;b<=9;b++)
{
printf("%d,",a[b]);//显示每一轮的排序结果
}
printf("\n");
}
for(i=0;i<=9;i++)
{
printf("%4d",a[i]);
}
getchar();
}
![]()
//冒泡排序方法 排序过程显示
#include <stdio.h>
int main()
{
int i,j,t,a[10]={526,36,2,369,56,45,78,92,126,54},v; //定义变量及数组为基本整型
for(i=0;i<=9;i++)
for (j=i+1;j<10;j++)
{ if(a[i]>a[j]) //如果前一个数比后一个数大,则利用中间变量t实现两值互换
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(v=0;v<10;v++)
printf("%5d", a[v]); //输出排序后的数组
printf("\n");}
printf("排序后的顺序是:\n");
for(i=0;i<10;i++)
printf("%5d", a[i]); //输出排序后的数组
printf("\n");
return 0;
}