Stanford 算法 part I:第二周编程题
来源:互联网 发布:1100lu.us最新域名是啥 编辑:程序博客网 时间:2024/05/15 11:09
这里只列出了核心算法,读入文件的过程省略了,默认读入了array数组
使用语言为C语言
#include<stdio.h>#include<stdlib.h>long merge(long* array,int low,int mid,int high){ long count=0; int i = low; int j = mid + 1; long* temp = array; for (int k = low; k < high; k++) { if (j >= high) array[k] = temp[i]; else if (i >= mid) array[k] = temp[j]; else if (temp[i] > temp[j]) { array[k] = temp[i++];//少写一行i++ count += mid - i + 1; } else if (temp[i] < temp[j]) { array[k] = temp[j++]; } } return count;}long count(long* array, int low,int high){ if (high <= low) return 0; int mid = low + (high - low) / 2; long x = count(array, low, mid); long y = count(array, mid + 1, high); long z = merge(array, low, mid, high); return (x + y + z);}
阅读全文
0 0
- Stanford 算法 part I:第二周编程题
- Stanford 算法 part I:第三周编程题
- Stanford 算法 part I:第四周编程题
- Stanford 算法 part II:第一周编程题
- Week2 Assignment - Quicksort - Stanford - Algorithm: Design and Analysis Part I
- 【算法】Algorithms Part I week2
- 游戏编程模式:命令模式(Part I)
- [Stanford Cryptography I] Week1
- Part I
- Stanford机器学习---第二周.特征缩放、正规方程
- Stanford机器学习 第二周:多变量线性回归
- 游戏编程模式:轻量级(Flyweight)模式(Part I)
- 班门弄斧(PART I)一些常见的编程书籍JAVA
- 【Java、算法】Princeton Algorithms Part I Week 1 Exercise
- 【Coursera】Algorithms, Part I 算法C++实现: Quick Union
- 【Coursera】Algorithms, Part I 算法C++实现:Weighted Quick Union
- 【Coursera】Algorithms, Part I 算法C++实现:BinarySearch
- 【Coursera】Algorithms, Part I 算法C++实现:Stacks Linked-list
- 万物互联 万物安全吗?
- “2017中国工业质量品牌建设论坛”即将召开
- 冒泡排序
- CentOS7 或者 CentOS6 忘记密码重新设置方法
- java将html内容生成Word
- Stanford 算法 part I:第二周编程题
- ContainerAllocator详解
- 数据结构--计算机底层--操纵数据
- 添加球员
- 17~18上学期期中考总结
- 一对一单向关联映射
- kotlin学习(二)
- Spring Data for JPA核心技术讲解
- 运维之监控与安全篇------4. Cacti监控