计数排序:它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法
实现原理: 首先将k范围内的数都C[]数组设0,然后遍历一边数组A[],对应的C[A[i]]++,
然后再将A[]数组向高位递加,观察发现每个不同的数字对应的C[]值都是该数字在排序后数组的位置,然后填充重复的数字
代码:
#include
#include
...
分类:
其他好文 时间:
2014-05-07 08:50:13
阅读次数:
254
private static void sort1(int x[], int off, int len) {
// Insertion sort on smallest arrays //长度小于7,采用冒泡排序
if (len < 7) {
for (int i=off; ioff && x[j-1]>x[j];...
分类:
其他好文 时间:
2014-05-07 05:14:35
阅读次数:
279
最近在学scala语言,scala代码如下:
import scala.collection.JavaConversions._
object Solution {
def solution(A: Array[Int]): Int = {
// write your code in Scala 2.10
// sort
scala.uti...
分类:
其他好文 时间:
2014-05-07 04:20:38
阅读次数:
352
题目:
在数轴上有n个区间,每个区间都是连续的整数区间。现在要在数轴上任取一堆元素,构成一个集合V,要求每个区间和V的交集至少有两个不同的元素。求V的最小的元素个数。
问题分析:
可以使用贪心算法,最终结果肯定是小于大于2×n的,如果两个集合之间有相同的元素,那么选相同的元素必然会使结果更小,当我们以e排序后,如果有相同的必然是最后的元素。所以贪心的策略就是如果一个区间最...
分类:
其他好文 时间:
2014-05-07 04:04:23
阅读次数:
294
比赛时候看完题目就觉得是拓扑排序,当时心里隐隐觉得跟相框叠加那个题有点相似的
然后wzy问我no solution 是什么情况,我就一直去想是不是构成了什么排列就一定是no solution
其实只用再参考相框叠加那个题往前想一丁点就够了,就是从最后涂的那一层开始往前找,每一次都必然有一行或一整列是一样的
每次按逆字母序删除这一行或列就是了。
拓扑排序的题总是类似而且简单的,找到关系,敲代...
分类:
其他好文 时间:
2014-05-07 03:29:38
阅读次数:
259
《算法导论》里的COUNTING_SORT,用C++实现有问题:
#include
#include
using namespace std;
void COUNTING_SORT(vectorint>&A, vectorint>&B, const int& k)
{
int* C = new int[k + 1]();
for (unsigned j = 0; j A.size();...
分类:
其他好文 时间:
2014-05-07 02:59:30
阅读次数:
251
OJ题目:click here~~
题目分析:1……n按顺序围成一个圈,1与n相邻。交换相邻两个数算1步。至少需要多少步,得到一个逆方向的1……n的圈。
分两半,使用冒泡排序,排成逆序的交换次数之和即为结果。
AC_CODE
int f(int n){
return n*(n - 1)/2;
}
int main(){
int n , t;
cin >> t;
...
分类:
其他好文 时间:
2014-05-06 23:15:55
阅读次数:
301
首先是活动安排问题。
贪心的关键在于排序策略。
思路很简单,对所有活动的结束时间排序,如果结束时间相同,因为要尽量多的参加活动,所以选取开始时间尽量晚的(这样可以安排的比较多),然后依次从早到晚选取不冲突的活动加入,即为最多可以参加的活动。
#include
#include
#include
#include
#include
using namespace std;
clas...
分类:
其他好文 时间:
2014-05-06 23:01:00
阅读次数:
394
正常来说,在完成所送select语句、createindex等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。这个问题在论坛中也常被网友问到,下面我总结一下,..
分类:
数据库 时间:
2014-05-06 16:07:56
阅读次数:
425
数值算法:解方程、微积分、数值分析 多用在工程设计
非数值算法:搜索、排序、拆分、合并 多用在系统
一、线性搜索
1.算法
1.1从头开始,依次将每一个元素与查找目标进行比较
1.2或者找到目标,或者找不到目标
2.评估
2.1平均时间复杂度:O(N),线性时间
2.2对数据没有任何规律性要求 穷举法
二、二分搜索(折半搜索)
1.算法
1.1假设表中...
分类:
其他好文 时间:
2014-05-06 15:36:44
阅读次数:
260