有很多种方法:
选择排序:
//Author:Pan Daoxi
#include <iostream>
using namespace std;
int main(){
int n,a[501],b[501],k,x=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
// 获取到这个范围内所有奇数储存在数组b中
for(int i=0;i<n;i++){
if(a[i]%2){
b[k++]=a[i];
x++;
}
}
k=0; // 将k归零
// 选择排序
for(int i=0;i<x;i++){
k=i;
for(int j=i+1;j<x;j++){
if(b[j]<b[k]){
k=j;
}
}
if(k!=i){
swap(b[i],b[k]);
}
}
for(int i=0;i<x;i++){
cout<<b[i]<<",";
}
return 0;
}
冒泡排序:
//Author:Pan Daoxi
#include <iostream>
using namespace std;
int main(){
int n,a[501],b[501],k,x=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
// 获取到这个范围内所有奇数储存在数组b中
for(int i=0;i<n;i++){
if(a[i]%2){
b[k++]=a[i];
x++;
}
}
k=0; // 将k归零
// 冒泡排序
for(int i=x-1;i>=1;i--){
for(int j=0;j<i;j++){
if(b[j]>b[j+1]){
swap(b[j],b[j+1]);
}
}
}
for(int i=0;i<x;i++){
cout<<b[i]<<",";
}
return 0;
}
插入排序:
//Author:Pan Daoxi
#include <iostream>
using namespace std;
int main(){
int n,a[501],b[501],k,x=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
// 获取到这个范围内所有奇数储存在数组b中
for(int i=0;i<n;i++){
if(a[i]%2){
b[k++]=a[i];
x++;
}
}
k=0; // 将k归零
// 插入排序
for(int i=1;i<x;i++){
int key=b[i],j=i-1;
while(j>=0&&key<b[j]){
b[j+1]=b[j];
j--;
}
b[j+1]=key;
}
for(int i=0;i<x;i++){
cout<<b[i]<<",";
}
return 0;
}