#import int a[101],n;void quickSort(int left,int right);int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... ...
分类:
编程语言 时间:
2015-02-28 18:31:15
阅读次数:
179
注意离散化的写法要熟悉 树状数组这种求逆序数的方法
分类:
编程语言 时间:
2015-02-26 22:52:27
阅读次数:
209
#include <stdio.h>
#include <stdlib.h>
void swap(int *i, int *j);
int choose_pivot(int i, int j);
int partition(int list[], int m, int n);
void quicksort(int list[], int m, int n);
void display(in...
分类:
编程语言 时间:
2015-02-24 21:06:54
阅读次数:
178
题目大意就是说帮你给一些(n个)乱序的数,让你求冒泡排序需要交换数的次数(n
显然不能直接模拟冒泡排序,其实交换的次数就是序列的逆序对数。
由于数据范围是 0 ≤ a[i] ≤ 999,999,999所以先要离散化,然后用合适的数据结果求出逆序
可以用线段树一步一步添加a[i],每添加前查询前面添加比它的大的有多少个就可以了。
也可用树状数组,由于树状数组求的是(1...x)的数量和所以每...
分类:
编程语言 时间:
2015-02-22 20:47:46
阅读次数:
200
根据《数据结构与算法分析——Java语言描述》一书的顺序来总结的。插入排序(insertion sort)希尔排序(Shellsort)堆排序(heapsort)并归排序(mergesort)快速排序(quicksort)桶式排序(bucketsort)外部排序(external sorting)...
分类:
编程语言 时间:
2015-02-15 21:49:05
阅读次数:
178
这里为了不修改我之前的文章,重新贴一下之前的代码
#if 01
//selectSort && quickSort comparison
#include
#include
#include
#include
#include
#include
#include
void swap(int *a, int *b)
{
int temp = *a;...
分类:
编程语言 时间:
2015-02-11 20:43:10
阅读次数:
221
In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. For the input sequence
9 1 0 5 4 ,
...
分类:
编程语言 时间:
2015-02-06 09:38:14
阅读次数:
168
#include
void QuickSort1(int *s,int left,int right)
{
int i,j,t,pivot;
if(left>right)
return;
if(left<right)
{
pivot = s[left]; //基准数
i=left;
j=right;
while(i!=j)
{
while(i=...
分类:
编程语言 时间:
2015-02-06 01:58:13
阅读次数:
163
原理快速排序(Quicksort)是对冒泡排序的一种改进。从数列中挑出一个元素,称为"基准"(pivot);排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在本次排序退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作...
分类:
编程语言 时间:
2015-02-04 16:26:31
阅读次数:
165