c_cpp 替代排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 替代排序相关的知识,希望对你有一定的参考价值。

//https://www.geeksforgeeks.org/alternative-sorting/
#include <bits/stdc++.h>
using namespace std;

int merge(int a[], int l, int m, int r){
    int n1 = m-l+1, n2 = r-m;
    int b[n1],c[n2];
    memcpy(b,a+l,n1*sizeof(int));
    memcpy(c,a+m+1,n2*sizeof(int));

    int i = 0, j = 0, k = l;
    while(i<n1 && j < n2){
        if (b[i] < c[j])
            a[k++] = b[i++];
        else
            a[k++] = c[j++];
    }
    while (i < n1)
        a[k++] = b[i++];
    while (j < n2)
        a[k++] = c[j++];
}

int mergesort(int a[], int l, int r){
    if(r>l){
        int m = (l+r)/2;
        mergesort(a,l,m);
        mergesort(a,m+1,r);
        merge(a, l,m,r);
    }
}

int main(){
    int n;
    cout<<"Enter the no.of elements:";
    cin>>n;
    int a[n];
    cout<<"Enter the elements:";
    for (int i=0;i<n;i++)
        cin>>a[i];
    int c=0,b=n-1;


    mergesort(a,0,n-1);

    for (int i=0;i<n;i++)
        cout<<a[i]<<" ";
    cout<<endl;

    int i = 0, j = n-1;
    while (i < j) {
        cout << arr[j--] << " ";
        cout << arr[i++] << " ";
    }

    if (n % 2 != 0)
        cout << arr[i];
}

以上是关于c_cpp 替代排序的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 单链表中的替代奇数和偶数节点

c_cpp BrickstorOS和illumos系统的替代ps命令

c_cpp 对几乎排序(或K排序)的数组进行排序,插入排序

c_cpp 找到最小长度未排序的子阵列,排序使整个数组排序

c_cpp 88.合并排序数组

c_cpp 希尔排序