zoukankan      html  css  js  c++  java
  • AcWing算法基础1.2

    排序

    归并排序

    归并排序和快速排序相反,快排是先排后分再合并,归并则是先分后排再合并

    归并排序时间复杂度是O(n logn)

    分析:    -----------------------------------------------------------------      //待排序的序列长度

                   -----------------------------  ----------------------------------     

                   -------------  --------------   --------------  ------------------

                   ......

                   -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -    // 总共logn层

    待排序列会被分成logn层,对于每层我们需要执行n次操作,所以时间复杂度就是O(n logn)

    要是不太明白最下面有张图,看着图容易理解

    模板 :

     1 void merge_sort(int q[], int l, int r)
     2 {
     3     if(l >= r)  return;
     4     int mid = l + r >> 1;
     5     merge_sort(q, l, mid);
     6     merge_sort(q, mid + 1, r);
     7     int k = 0, i = l, j = mid + 1;
     8     while(i <= mid && j <= r)
     9         if(q[i] < q[j])  temp[k++] = q[i++];
    10         else  temp[k++] = q[j++];
    11         
    12     while(i <= mid)  tmep[k++] = q[i++];
    13     while(j <= r)  temp[k++] = q[j++];
    14     for(int i = l, j = 0; j <= r; i ++, j ++)
    15         q[i] = temp[j];
    16 }
    
    

    图片


  • 相关阅读:
    学习笔记10.28
    学习目标
    ajax传值修改数据
    php 4种传值方式
    01-17权限管理
    01-16作业:文件管理
    01-15文件操作
    01-12文件上传
    1-6 号 详情
    ajax登陆提示
  • 原文地址:https://www.cnblogs.com/chuyds/p/10941073.html
Copyright © 2011-2022 走看看