• Merge Sort O(nlog2n)


    #include <stdio.h>
    void mergeOrder(int* p, int len);
    int input(int* array)
    {
            int n;
            int i = 0;
            while(1) {
                    scanf("%d", &n);
                    if(n == -1) break;
                    *array = n;
                    array++;
                    i++;
            }   
        
            return i;  
    }
    int main()
    {
            int array[100]; 
            int len;
            len = input(array);
            int arr[100];
    //      bubbleOrder(array);
    //      quickOrder(array, len);
    //      selectOrder(array,len);
    //      insertOrder(array, len);
            mergeOrder(array, len);
            for(int i =0; array[i] != '\0'; i++) {
                    printf("number is:%d\r\n", array[i]);
            }   
            return 0;
    }
    void Merge(int array[], int start, int mid, int end) 
    { 
        int temp[100] = {0};  
        int i;  
        int j;
        int k;
        for (i = start, j = mid+1, k = 0; k <= end-start; k++)
        {
             if (i == mid+1) {
                temp[k] = array[j++];
                continue;
             }
             if (j == end+1) {
                 temp[k] = array[i++];
                 continue;
             }
             if (array[i] < array[j]) {
    
                 temp[k] = array[i++];
             }
             else {
                 temp[k] = array[j++];
             }
        }
       
        for (i = start, j = 0; i <= end; i++, j++) {
            array[i] = temp[j];
        }
    }
    void MSort(int array[], int start, int end)
    {
          if (start < end)
          {
                 int i;
                 i = (end + start) / 2;
                 MSort(array, start, i);
                 MSort(array, i + 1, end);
                 Merge(array, start, i, end);
          }
    }
    void mergeOrder(int* p, int len)
    {
            MSort(p, 0, len-1);
    }
    

      

  • 相关阅读:
    Linux基础知识整理
    小白学习之路,基础四(函数的进阶)
    关于高通量数据格式
    数据库管理系统
    Linux 基本操作
    生信研究内容
    redis6 多线程特性
    Centos8配置NFS4
    关于Mybatis将查询结果中添加常量列并返回
    关于swagger文档的使用方法
  • 原文地址:https://www.cnblogs.com/mysqlinternal/p/2966234.html
Copyright © 2020-2023  润新知