下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
// =====================【归并排序】==================#include <stdio.h>#include <stdlib.h>#include <time.h>#include <math.h>#define NUM 20int arr[NUM] = { 0 };int arr_temp1[NUM] = { 0 };int arr_temp2[NUM] = { 0 };voID init(){ time_t tm; time(&tm); srand((unsigned int)tm); int max_item = 100; for (int i = 0; i != NUM; i++) arr[i] = rand() % max_item;}voID display(int * arr){ for (int i = 0; i != NUM; i++) printf("%-10d",arr[i]); printf("\n");}voID merge(int low,int mID,int high){ for (int ii = 0; ii != mID + 1 - low; ii++) { arr_temp1[ii] = arr[low + ii]; } arr_temp1[mID + 1 - low] = INT_MAX; for (int ii = 0; ii != high - mID; ii++) { arr_temp2[ii] = arr[mID + 1 + ii]; } arr_temp2[high - mID] = INT_MAX; int i = 0; int j = 0; for (int k = low; k != high + 1; k++) { if (arr_temp1[i] < arr_temp2[j]) arr[k] = arr_temp1[i++]; else arr[k] = arr_temp2[j++]; }}voID mergeSort(int low,int high){ if (low >= high) return; int mID = (low + high) / 2; mergeSort(low,mID); mergeSort(mID + 1,high); merge(low,mID,high);}voID main(){ init(); printf("归并排序前\n"); display(arr); mergeSort(0,NUM - 1); printf("归并排序后\n"); display(arr);}
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的C实现方法经典算法之归并排序全部内容,希望文章能够帮你解决C实现方法经典算法之归并排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)