码迷,mamicode.com
首页 > 其他好文 > 详细

ecnu 1841 Sort

时间:2018-05-15 21:09:09      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:turn   amp   mergesort   def   size   names   c++   namespace   color   

C/C++:

#include<bits/stdc++.h>
using namespace std;

const int maxN=50;

int ls[maxN/2],rs[maxN/2];

void mergesort(int arr[],int l,int r){
    int m=(l+r)/2;
    if(m>l)mergesort(arr,l,m);
    if(m+1<r)mergesort(arr,m+1,r);
    memcpy(ls,arr+l,sizeof(int)*(m-l+1));
    memcpy(rs,arr+m+1,sizeof(int)*(r-m));
    ls[m-l+1]=INT_MAX;
    rs[r-m]=INT_MAX;
    int u(0),v(0);
    for(int i=l;i<=r;i++){
        if(ls[u]<rs[v])arr[i]=ls[u++];
        else arr[i]=rs[v++];
    }
}

int arr[100];

int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)scanf("%d",arr+i);
    mergesort(arr,0,n-1);
    for(int i=0;i<n;i++)printf("%d\n",arr[i]);
}

python:

def quicksort(arr,l,r):
    if l>=r:return
    m=l
    for i in range(l,r):
        if arr[i]<arr[r]:
            arr[i],arr[m]=arr[m],arr[i]
            m+=1
    arr[m],arr[r]=arr[r],arr[m]
    if m>l+1:
        quicksort(arr,l,m-1)
    if m<r-1:
        quicksort(arr,m+1,r)

n=int(input())
arr=[]
for i in range(0,n):
    arr.append(int(input()))
quicksort(arr,0,n-1)
for i in arr:
    print(i)

 

ecnu 1841 Sort

标签:turn   amp   mergesort   def   size   names   c++   namespace   color   

原文地址:https://www.cnblogs.com/TAMING/p/9042552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!