• 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系统安装spark一个小提示
    寒假学习记录第七天
    寒假学习记录第六天
    寒假学习记录第五天
    快捷键
    yum安装软件内容
    常见问题处理
    linux目录详解
    linux三剑客
    linux符号与正则表达式
  • 原文地址:https://www.cnblogs.com/mysqlinternal/p/2966234.html
Copyright © 2020-2023  润新知