欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题。
随机产生及冒泡排序、选择排序、直接插入排序
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 40
int main(){
int i,j,a[N],b,n,k;
int f=1;
int t;
printf("输入整数个数:\n");
scanf("%d",&n);
srand(time(0));
for (i=0;i<n;i++){
b=rand()%90+10;
for (j=0;j<i;j++){
if (b==a[j])
f=0;
}
if (f){
a[i]=b;
}
}
for (i=0;i<n;i++){
printf("%3d",a[i]);
}
printf("\n\n");
//直接插入
for (i=1;i<n;i++){
t=a[i]; //保留新来的数
for (j=i-1;j>=0&&a[j]>t;j--){
a[j+1]=a[j];
}
a[j+1]=t;
}
/*选择
for (i=0;i<n-1;i++){
k=i;
for (j=i+1;j<n;j++){
if (a[j]<a[j-1]){
k=j;
}
}
if (i!=k){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}*/
/*冒泡
for (i=0;i<n-1;i++){
for (j=0;j<n-i-1;j++){
if (a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}*/
for(i=0;i<n;i++){
printf("%3d",a[i]);
}
return 0;
}