美文网首页
排序算法之归并排序

排序算法之归并排序

作者: Hunter琼 | 来源:发表于2021-05-06 11:05 被阅读0次

归并排序是个稳定的内部排序算法,时间复杂度为0(nlog2n),空间复杂度为O(n),一般来说当n的值很大,就可以考虑选择这种排序算法,和直接插入排序算法结合使用.

下面是两路归并算法:

#include <stdio.h>
#include <stdlib.h>

void merge(int *data, int low,int mid,int high){
 int i ,p ,k = 0;
 int *temp;
 temp = (int *)malloc((high - low + 1)*sizeof(int));
 if(!temp){
   printf("内存分配失败!!!");
   return;
 }
 for( i = low,p = mid; i < mid && p <= high;){
     //printf("执行000000!!!");
    if(data[i] < data[p]){
      temp[k++] = data[i++];
    }else{
       temp[k++] = data[p++];
    }
 }
//printf("执行0!!!");
while(i < mid) temp[k++] = data[i++];
while(p <= high)temp[k++] = data[p++];
//printf("执行1!!!");
i = low; p = 0;
while(p < k){
 data[i++] = temp[p++];
}
 free(temp);
// printf("执行一!!!");
 
}

void  mergeSort(int data[] ,int s,int t){
   int m;
   if(s < t){
       m =  (s + t)/2;
       mergeSort(data,s,m);
       mergeSort(data,m+1,t);
       merge(data,s,m+1,t);

   }

   // printf("执行000000!!!");
}

int main(int argc,char *argv[]){

   int data[] = {48,37,64,96,75,12,26,48,54,3};
  // int num = sizeof(data)/sizeof(data[0]);
    //printf("%d",num);
   mergeSort(data,0,10);
   for(int i = 0; i < 10; i++){
     printf("%d\n",data[i]);
   }
   return 0;
}

相关文章

  • 2018-06-30

    排序算法之归并排序 归并排序算法是排序算法中的经典算法之一,其核心思想是利用归并的思想实现的排序方法,该算法采用经...

  • 归并排序

    图解排序算法(四)之归并排序 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用...

  • 归并排序

    来源:图解排序算法(四)之归并排序 - dreamcatcher-cx - 博客园 归并排序(MERGE-SORT...

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • 排序算法之归并排序

    归并排序(Merge Sort) 归并排序是利用归并的思想实现排序的方式,该算法采用的是经典的分治算法 归并排序过...

  • 算法入门——归并排序、希尔排序

    上篇文章我们学习了算法入门——堆排序,这篇文章我们学习算法入门——归并排序、希尔排序。 归并排序 归并排序是将一个...

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

  • 归并排序

    归并排序(Merge Sort): 归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排...

  • 算法 第二章第二部分笔记

    各种排序算法的性能特点 选择排序 插入排序 希尔排序 归并排序 本地归并排序 自底向上的归并排序 快速排序 三向切...

  • 归并排序

    归并排序 这个排序算法是建立在归并操作上的一种有效的排序算法,算法主要采用分治法,归并排序的算法复杂度为O(n*l...

网友评论

      本文标题:排序算法之归并排序

      本文链接:https://www.haomeiwen.com/subject/klnrdltx.html