插入分析:(1)查找待插入数据在数组中应插入的位置k;
(2)从最后一个元素开始向前直到下标为k的元素依次往后移动一个位置;
(3)将欲插入的数据x插入第k个元素的位置
删除分析:
(1)查找待删除元素的位置k;
(2)若找到要删除的数据,则从第k+1个元素开始到最后一个元素依次前移–位;
代码实现
#include<iostream>
#include<stdlib.h>
#define N 10
using namespace std;
int main(){
float a[N],n=5;
int i,j,m,k,t;
cout << "生成5个数" << endl;
for(i=0;i<n;i++){
a[i]=rand()%101;
cout <<a[i]<<' ';
};
cout << endl;
//冒泡排序//
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]>a[i+1]){
m=a[i+1];
a[i+1]=a[i];
a[i]=m;
};
for(i=0;i<n;i++)
cout << a[i] <<' ';
//插入//
cout <<endl<< "输入插入的值" << endl;
cin >> k;
for(i=0;i<n;i++)
if(k<a[i])
break;
m=i;
for(i=n-1;i>=m;i--)
a[i+1]=a[i];
a[m]=k;
for(i=0;i<n+1;i++)
cout << a[i] << ' ';
cout << endl;
//删除//
cout << "输入删除值" << endl;
cin >> t;
for(i=0;i<n+1;i++)
if(a[i]==t)break;
m=i;//记录删除的位置//
if(m==n+1){
cout << "未找到" << endl;
for(i=0;i<n+1;i++)
cout << a[i] << ' ';}
else {for(j=m;j<n;j++)
a[j]=a[j+1];
for(j=0;j<n;j++)
cout << a[j] << ' ';};
return 0;
};