升序: 选择排序: 选定一个元素,一次和后面的元素相比较,如果选定的元素大雨后面的比较元素,就交换位置 先出现最小值,最后出现最大值。 public static void main(String[] args) { int[] arr = {5,8,9,12,55,565,421,...
分类:
编程语言 时间:
2014-09-09 11:43:48
阅读次数:
276
sort函数的用法(#include)做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。这个函...
分类:
编程语言 时间:
2014-09-06 09:41:12
阅读次数:
212
一、Arrays.sort()数组排序JavaArrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。1、对于基本类型源码分析如下(以int[]为例): Java对Primitiv...
分类:
编程语言 时间:
2014-09-01 12:01:33
阅读次数:
259
给定一列数(未排序)和一个目标值, 找出所有可能的组合和等于目标值的组合, 数组中的数可以重复使用.算法思路: 使用递归.对数组排序, 从小到大;令i = 起始下标(初始为0), 对于每一个数, 如果它等于目标值, 则在缓存结果中加入此数并将缓存结果加入输出队列, 随后在缓存结果中删除此数; 如.....
分类:
其他好文 时间:
2014-08-29 18:09:08
阅读次数:
138
1 无顺序的一个数组求最大的k个数
1)先用快速排序对数组排序在找前k个;
2) 先建立k小顶堆,再扫描整个数组,堆顶为k个数中最小的数;
/************************************/
//寻找在数组中最大的K个数
//小顶堆插入
void constructHeap(int a[],int n,int value){
a[n] = value;
i...
分类:
其他好文 时间:
2014-08-29 16:10:48
阅读次数:
220
给定一组数(未排序), 求它们的所有组合可能.如给定{1 2 3}, 返回:[ [] [1] [2] [3] [1 2] [1 3] [2 3] [1 2 3] ]算法思路:对数组排序, 从小到大;令 i = 0, 对已有组合v从后往前进行如下操作v的最后1个组合内加入第i个元素;将新组合加入到v中...
分类:
其他好文 时间:
2014-08-29 12:45:57
阅读次数:
187
后缀数组的实现有很多细节:1.da函数中的n 指的是 从 0--n-1 为字符,对这n个后缀排序2.r[n-1]为在原字符串后面加的比前面任何一个字符都小的辅助字符,所以原来的字符串应该是r[0]---r[n-2]3.sa[0]=n-1为增添的辅助字符,所以sa转rank 的时候 i=1 to n-...
分类:
其他好文 时间:
2014-08-29 01:16:06
阅读次数:
207
$arr[$j+1]) { $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } foreach($arr as $val) { echo...
分类:
Web程序 时间:
2014-08-28 00:42:38
阅读次数:
274
function array_sort($arr,$keys,$type='asc'){ $keysvalue= $new_array= array(); foreach($arr as $k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type== ...
分类:
Web程序 时间:
2014-08-27 12:34:27
阅读次数:
188