#include "stdio.h"
main(){
int a[100]={2,5,9,6,0};
int data;
int i;
int j;
int n;
int flag;
int min;
n=5;//有效数据数是5,其他都是0
//遍历一个数组
for(i=0;i<n;i++){
printf("%4d",a[i]);
}
printf("\n");
//排序
for(j=0;j<n-1;j++){
min=a[j];
flag=j;
for(i=j;i<n;i++){
if(min>a[i]){
min=a[i];
flag=i;
}
}
data=a[j];
a[j]=a[flag];
a[flag]=data;
}
//插入
data=8;
//插入,使它有序
/*当一个数组有序时,
先移动后面的数据比移动前面的数据更好 */
j=n-1;//下标最大是4
while((j>=0)&&(a[j]>data)){
//当n=0时,j=-1,所以j>=0
a[j+1]=a[j];//把比data大的数据依次往后放一个
j--;
}
a[j+1]=data;/*从后往前依次比较,
比到最后j=0,
我们要把数据插入到它的后一位 */
n=n+1;//插入一个数,有效数据数加一
//遍历一个数组
for(i=0;i<n;i++){
printf("%4d",a[i]);
}
printf("\n");
}
C语言实现使数组有序,插入一个数后仍有序
最新推荐文章于 2023-11-05 15:39:21 发布