#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i,j,t;
int a[10];
int max;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
printf("
max=%d
",max);
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("
");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
printf("
");
}
}
简化后
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i,j,t,k;
int a[10];
int max;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
printf("
max=%d
",max);
for(i=0;i<9;i++)
{
k=i;
for(j=k+1;j<10;j++)
{
if(a[k]>a[j])
{
k=j; //储存最小值下标
t=a[i];
a[i]=a[k]; //做一次交换
a[k]=t;
}
}
}
printf("
");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
printf("
");
}
}
//插入法排序
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i,j,t;
int a[10];
int max;
srand(time(0));
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
printf("
max=%d
",max);
for(i=1;i<10;i++) //表示插入次数共进行n-1次插入
{
t=a[i]; //存储插入数
j=i-1;
while(j>=0&&t<a[j])
{
a[j+1]=a[j]; //寻找插入点并将其后的元素右移
j--;
}
a[j+1]=t; //将插入元素插入到插入点
}
printf("
");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
printf("
");
}
}