2011年10月23日

摘要: 设A[1...n]是一个包含n个不同数的数组。如果在i<j的情况下,有A[i]>A[j],则(i,j)就成为A中的一个逆序对(inversion)。要确定一个数组中的逆序对的个数,可以采取分治法。将A分为两部分A1和A2,则A中逆序对的数目等于A1中逆序对的数目、A2中逆序对的数目和A1,A2合并时A1中比A2中元素大的数目。参考代码:#include <iostream>using namespace std;#define MAX_VALUE 99999//合并时计算逆序对数目int MergeCountReverse(int *a,int low,int mid, 阅读全文
posted @ 2011-10-23 22:50 江南烟雨hust 阅读(399) 评论(0) 推荐(0)
摘要: 下面简要总结了常用的一些排序算法。如有错误,还请大家指正、见谅~~谢谢~~【1】插入排序:是一个对少量元素进行排序的有效算法。实现比较简单。时间复杂度:O(n^2),空间复杂度:O(1)。是稳定的排序方法。代码://insertion sort #include <iostream> using namespace std; //insertion sort void InsertionSort(int *a,int n) { int temp; for(int i = 1;i < n;++i) { temp = *(a + i); int j = i - 1; while. 阅读全文
posted @ 2011-10-23 16:32 江南烟雨hust 阅读(171) 评论(0) 推荐(0)

导航