简洁各种排序

  1. 选择排序

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int a[10001];
    	int n;
    	cin>>n;
    	for(int i=0;i<n;i++)cin>>a[i];
    	for(int i=0;i<n;i++){
    		int p=i;
    		for(int j=i;j<n;j++){
    			if(a[j]<a[p]){
    				p=j;
    			}
    		}
    		int tmp=a[i];
    		a[i]=a[p];
    		a[p]=tmp;
    	}
    	for(int i=0;i<n;i++)cout<<a[i]<<" ";
    	return 0;
    }
    
  2. 冒泡排序

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	cin>>n;
    	int a[1001];
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	} 
    	for(int i=0;i<n-1;i++){
    		for(int j=n;j>i;j--){
    			if(a[j]<a[j-1])swap(a[j],a[j-1]); 
    		}
    	}
    	for(int i=0;i<n;i++){
    		cout<<a[i]<<" ";
    	}
    	return 0;
    }
    
  3. 希尔排序

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXX=100005;
    int a[MAXX];
    void di1ci(int a[],int n){
    	int gap,i,j;
    	for(gap=n/2;gap>0;gap/=2){
    		for(i=gap+1;i<=n;i++){
    			for(j=i-gap;j>=1;j-=gap){
    				if(a[j]>a[j+gap])swap(a[j],a[j+gap]);
    				else break;
    			}
    		}
    	} 
    } 
    
    int main(){
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	di1ci(a,n);
    	for(int i=1;i<n;i++)cout<<a[i]<<",";
    	cout<<a[n];
    	return 0;
    }
    
  4. sort  

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[1001],n;
    cin>>n;
    for(int i=0;i<n;i++)cin>>a[i];
    sort(a,a+n);
    for(int i=0;i<n;i++)cout<<a[i];
	return 0;
} 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值