冒泡排序的交换次数
来源:互联网 发布:临沂淘宝培训 编辑:程序博客网 时间:2024/05/21 10:04
通过另建一个数组,按排好序后的位置来存放数字,这个新数组建成树状数组的形式,优化复杂度。
#include<stdio.h>#include<string>#define N 100005int n;int bit[N];int a[N];int sum(int i) {int s=0;while(i>0) {s+=bit[i];i-=i&-i;}return s;}void add(int i,int x) {while(i<=n) {bit[i]+=x;i+=i&-i;}}void solve() {int ans=0;int j;for(j=0;j<n;j++) {ans+=j-sum(a[j]);add(a[j],1);}printf("%d\n",ans);}int main() {#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifscanf("%d",&n);int i;for(i=0;i<n;i++) {scanf("%d",&a[i]);}solve();return 0;}
0 0
- 冒泡排序的交换次数
- 冒泡排序的交换次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 树状数组------冒泡排序的交换次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数
- 冒泡排序中数据交换的次数(sdu2554
- 178_冒泡排序的交换次数(逆序数)
- 冒泡排序中数据交换的次数 (sdut oj)
- SDUT-2554 冒泡排序中数据交换的次数
- 运用BIT处理冒泡排序的交换次数问题
- 树状数组应用-冒泡排序的交换次数
- js设置元素时好时坏的问题
- 打开多个unity项目
- 多线程 or 多进程 (转强力推荐)
- mappingResources、mappingLocations、mappingDirectoryLocations、mappingJarLocations
- iframe双滚动条 解决方式 CSS3 overflow-y 属性
- 冒泡排序的交换次数
- tomcat目录解释
- Unity3D性能优化--- 收集整理的一堆
- seekbar的使用(数值拖动框的使用—用于选择数值)
- 黑马程序员_毕向东java基础视频第五天
- 经典面试题目——250M内存处理10G大小的log文件
- Js 获取日期时间
- SQL Server 中 RAISERROR 的用法
- 第十周项目 4 大奖赛计分