面试:分而治之求逆序数
来源:互联网 发布:java线程池面试题 编辑:程序博客网 时间:2024/04/27 16:11
在并归排序的基础上实现逆序数计算,时间复杂度为O(N*log2N)
<span style="font-size:18px;">#include <iostream>using namespace std;int ret = 0;template <typename T>void mergeAdjust(T *target, T *src, int start, int mid, int end) {int temp = 0;int i = start;int j = mid + 1;int cnt = start;while(i <= mid && j <= end) {if(src[i] > src[j]) {target[cnt ++] = src[j ++];temp += mid - i + 1;} else {target[cnt ++] = src[i ++];}}while(i <= mid) {target[cnt ++] = src[i ++];}while(j <= end) {target[cnt ++] = src[j ++];}ret += temp;}template <typename T>void mergeSort(T *target, T *src, int start, int end) {if(start == end) {target[start] = src[start];return;}T buf[100];int mid = start + (end - start) / 2;mergeSort(buf, src, start, mid);mergeSort(buf, src, mid + 1, end);mergeAdjust(target, buf, start, mid, end);}int main(void) {//int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};int a[] = {3, 2, 1, 4};int b[100];mergeSort(b, a, 0, 3);cout << ret << endl;return 0;}</span>
0 0
- 面试:分而治之求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数
- 求逆序数算法
- 求逆序数
- 求逆序数#no
- 求逆序数
- NYOJ117 求逆序数
- 求逆序数
- 求序列逆序数
- nyoj117求逆序数
- NYOJ 求逆序数
- 基于OpenCV的CT图像处理
- 各种二进制。。
- 初学HTML
- 【Android】Drawable和Bitmap的转换
- 一个c语言源码转化为机器语言的过程
- 面试:分而治之求逆序数
- acdream 1236 Burning Bridges tarjan
- LabView程序结构中的循环结构
- javascript之博客前端的自定义可以拖拽的弹出登陆框
- U-boot启动代码第二阶段之 gd_t和bd_t 以及 *gd asm ("r8")
- 更改eclipse项目发布地址
- 重载体验
- MFC多线程的创建,包括工作线程和用户界面线程
- Java垃圾回收:GC在什么时候对什么做了什么