C++完成數組的排序/拔出從新排序/和逆置操作詳解。本站提示廣大學習愛好者:(C++完成數組的排序/拔出從新排序/和逆置操作詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C++完成數組的排序/拔出從新排序/和逆置操作詳解正文
拔出新的數字從新排序
剖析:將新的數字與曾經排序好的數組中的數字逐個比擬,直到找到拔出點,然後將拔出點今後的數字都向後挪動一個單元(a[i+1]=a[i]),然後將數據拔出便可。
代碼:
#include<iostream>
using namespace std;
int main(){
int a[12];//界說用於存儲數字的數組
int n;//輸出的新的數字
int i=0,j=0,k=0;//排序用到的變量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //輸出數據
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //輸入數據
cout<<endl;
cout<<"please input a new one:";
cin>>n;
for(i=1;i<=10;i++){
if(a[i]>n){
k=n;
for(j=10;j>=i;j--){
a[j+1]=a[j];
}
a[i]=n;
break;
}
}
cout<<"new sorting order:"<<endl;
for(i=1;i<=11;i++){
cout<<a[i]<<" ";
} //輸入數據
cout<<endl;
return 0;
}
將曾經排好序的數組中的數據逆置:
剖析:完成次序的逆置,須要找到數組中的中央的數組,以該數字作為中央點,對應的雙方的數字交流便可。
#include<iostream>
using namespace std;
int main(){
int a[11];//界說用於存儲數字的數組
int i=0,j=0,k=0;//排序用到的變量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //輸出數據
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //輸入數據
cout<<endl;
cout<<"Reverse order:"<<endl;
i=10;
for(j=1;j<=(i/2);j++){
a[0]=a[j];
a[j]=a[i+1-j];
a[i+1-j]=a[0];
}
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //輸入數據
cout<<endl;
return 0;
}
還有一種辦法就是,在樹立一個數組,直接在賦值進程中完成逆置,即:
<PRE class=cpp name="code">#include<iostream>
using namespace std;
int main(){
int a[11];//界說用於存儲數字的數組 </PRE><PRE class=cpp name="code"> int b[11];
int i=0,j=0,k=0;//排序用到的變量
cout<<"please input ten integers:"<<endl;
for(i=1;i<=10;i++){
cin>>a[i];
} //輸出數據
for(i=1;i<10;i++){
k=i;
for(j=i+1;j<=10;j++){
if(a[j]<a[k]){
k=j;
}
}
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
cout<<"sorting order:"<<endl;
for(i=1;i<=10;i++){
cout<<a[i]<<" ";
} //輸入數據
cout<<endl;
cout<<"Reverse order:"<<endl;
i=10;
for(j=1;j<=i;j++){</PRE><PRE class=cpp name="code"> b[j]=a[i+1-j];
}
for(i=1;i<=10;i++){
cout<<b[i]<<" ";
} //輸入數據
cout<<endl;
return 0;
}
</PRE><BR>
該辦法與下面的辦法比擬,數據的盤算步調削減了,然則增長了體系空間的開支
<DIV><IMG alt="" src="<img src="http://files.jb51.net/file_images/article/201310/201310210857497.jpg" alt="" />"></DIV>
<PRE></PRE>