随机产生 N 个数,按升序排序,然后在其中查找数据 k,若找到,显示查找
成功的信息,并将该数据删除;若没有找到,则将数据 k 插入到这些数中,插入
操作后数据仍然有序。
#include "stdio.h"
#include<stdlib.h>
//输入
void input(int a[10]){
int i;
for(i=0;i<10;i++)
a[i] = rand();
}
//冒泡排序
void choose(int a[10]){
int i,j,temp;
for(i=1;i<10;i++)
{
for(j=9;j>=i;j--)
{
if(a[j]>a[j-1]){
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}
//输出
void output(int a[10]){
int i;
for(i=0;i<10;i++)
printf("%d\t",a[i]);
}
void main()
{
int a[10];
//输入
input(a);
//冒泡排序
choose(a);
//输出
output(a);
}
#include "stdio.h"
#include <stdlib.h>
void sort(int *a,int n){
int i,j,t;
for(i=1;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;
}
}
}
}
void find(int *a,int &n,int x)
{
int i,j,p=-1;
for(i=0;i<n;i++)
{
if(a[i] == x)
{
printf("数组中找到%d",x);
for(j=i+1;j<n;j++)
a[j] = a[j+1];
n--;
return;
}
if(p==-1 && a[i] > x)
p=i;
}
if(p==-1)
a[n] = x;
else
{
for(i=n;i>p;i--)
a[i] = a[i-1];
a[p] = x;
}
n++;
}
void main()
{
int a[50] = {0};
int i,n,k;
scanf("%d",&n);
for(i=0;i<n;i++)
a[i] = rand()%99+1;
//冒泡排序
sort(a,n);
scanf("%d",&k);
find(a,n,x);
for(i=0;i<n;i++)
printf("%d ",a[i]);
}