排序算法之归并排序
2017-03-19 09:41
281 查看
#include <stdio.h> int main() { void marge_sort(int arr[],int first,int last); void merge(int arr[],int low,int mid,int high); int data[10]; int i=0,length=10; for(i=0;i<10;i++) { scanf("%d",&data[i]); } merge_sort(data,0,length-1); for(i=0;i<10;i++) { printf("%d ",data[i]); } return 0; } void merge(int arr[],int low,int mid,int high) { int i,j; int *data = (int *)malloc(sizeof(int)*(high-low+1)); int left_low = low; int left_high = mid; int right_low = mid+1; int right_high = high; for(i=0;left_low<=left_high&&right_low<=right_high;i++) { if(arr[left_low]<arr[right_low]) { data[i] = arr[left_low++]; } else data[i] = arr[right_low++]; } while(left_low<left_high) { data[i++] = arr[left_low++]; } while(right_low<right_high) { data[i++] = arr[right_low++]; } for(i=0;i<high-low+1;i++) arr[low++] = data[i]; free(data); return; } void merge_sort(int arr[],int first,int last) { int mid; if(first<last) { mid = (last+first)/2; merge_sort(arr,first,mid); merge_sort(arr,mid+1,last); merge(arr,first,mid,last); } return 0; }
相关文章推荐
- 排序算法:归并排序
- 排序算法-归并排序
- 排序算法之归并排序
- 排序算法总结之归并排序 Merge Sort
- 常用排序算法总结4一一归并排序
- 排序算法-归并排序
- 基本排序算法——归并排序
- 数据结构6-排序算法(直接插入排序、希尔排序、快速排序、归并排序和堆排序)
- 排序算法之归并排序(JAVA)
- 数据结构中排序算法-归并排序(4)
- 排序算法-归并排序
- 排序算法之归并排序(JAVA)
- 排序算法之归并排序的递归与迭代实现方法
- 排序算法之两路归并排序(Java)
- 排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序
- 排序算法(四):归并排序
- 排序算法之归并排序
- 【转】排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序
- 一、排序算法 归并排序
- 排序算法(六)、归并排序