11.2 对数组归并排序
来源:互联网 发布:在安卓手机上编程 编辑:程序博客网 时间:2024/06/06 09:05
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define LEN 8int a[LEN] = { 5,2,4,7,1,3,2,6 };void merge(int start, int mid, int end){int n1 = mid - start + 1;int n2 = end - mid;int left[LEN], right[LEN];int i, j, k;for (i = 0;i < n1;i++)left[i] = a[start + i];for (j = 0;j < n2;j++)right[j] = a[mid + 1 + j];i = j = 0;k = start;while (i < n1&&j < n2)if (left[i] < right[j])a[k++] = left[i++];elsea[k++] = right[j++];while (i < n1)a[k++] = left[i++];while (j < n2)a[k++] = right[j++];}void sort(int start, int end){int mid;if (start < end){mid = (start + end) / 2;printf("sort (%d-%d,%d-%d) to %d %d %d %d %d %d %d %d \n", start, mid, mid + 1, end, a[0],a[1], a[2], a[3], a[4], a[5], a[6], a[7]);sort(start, mid);sort(mid + 1, end);merge(start, mid, end);printf("merge(%d-%d,%d-%d) to %d %d %d %d %d %d %d %d ", start, mid, mid + 1, end, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]);printf("\n");}}int main(void){sort(0, LEN - 1);getchar();return 0;}
0 0
- 11.2 对数组归并排序
- 对数组进行归并排序
- 归并排序&&数组中逆序对问题
- 归并排序求数组逆序对
- 数组中的逆序对(归并排序)
- 归并排序求数组中的逆序对
- 归并排序之数组的逆序对
- 修改归并排序求数组逆序对
- 归并排序-数组中的逆序对
- 数组中的逆序对(归并排序)
- 归并排序/逆序数组对问题
- 归并排序中对小数组采用插入排序
- 内排序- 逆序对问题 树状数组& 归并排序写法
- poj 2299 求逆序对 树状数组 归并排序
- 九度OJ 1348 数组中的逆序对 -- 归并排序
- 使用归并排序求解数组逆序对个数
- 利用归并排序思想求数组中的逆序对
- 逆序对之树形数组与归并排序
- How to use tcpdump on Android
- 了解Android中路径问题
- 同步静态和非静态同步的区别
- 二叉树链表的前,中,后序遍历
- Python:函数
- 11.2 对数组归并排序
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
- POJ2155:Matrix(二维树状数组,经典)
- 与linux相处的日子里
- tableWidget用法
- 黑马程序员---oc类的深入研究!
- 屏幕适配的理解
- iOS9地图增公共交通导航功能 中国300个城市可用
- 找到突破的点——认识自己