C++奇数单增序列

在这里插入图片描述

在这里插入图片描述
有很多种方法:

选择排序:

//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;
} 

猜你喜欢

转载自blog.csdn.net/PanDaoxi2020/article/details/120686876
今日推荐