zoukankan      html  css  js  c++  java
  • 归并排序


    #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct RcdType { ElemType key; }RcdType; void Merge (RcdType SR[],int low,int mid,int high) { int i,j,k; RcdType* TR; if( !(TR=(RcdType*)malloc(sizeof(RcdType)*(high-low+1)))) exit(0); for(j=mid+1,i=low,k=0; i<=mid&&j<=high; k++) { if(SR[i].key<=SR[j].key) TR[k]=SR[i++]; else TR[k]=SR[j++]; } while(i<=mid) { TR[k++]=SR[i++]; } while(j<=high) { TR[k++]=SR[j++]; } for(i=low;i<=high;i++) { SR[i].key=TR[i-low].key; } } void MSort(RcdType SR[],int low,int high) { int mid; if(low!=high) { mid=(low+high)/2; MSort(SR,low,mid); MSort(SR,mid+1,high); Merge(SR,low,mid,high); } } void MergeSort(RcdType SR[],int low,int high) { int i; MSort(SR,low,high); for(i=low;i<=high;i++) { printf("%d,",SR[i].key); } } int main() { RcdType sr[]={{0},{3},{5},{7},{4},{6},{8},{12}, {15},{54},{12},{65},{32},{15},{15},{78},{154}, {3544},{32112},{321},{155},{321}}; MergeSort(sr,0,21); return 0; }   
  • 相关阅读:
    woj 1574
    UESTC 594 我要长高 dp单调队列
    HDU 3401 Trade dp 单调队列优化
    HDU 2844 Coins 多重背包
    2-1
    1-2
    1-1
    12-1
    9-1
    14-8
  • 原文地址:https://www.cnblogs.com/GW17195/p/5538320.html
Copyright © 2011-2022 走看看