算法
xiao5438799
付出就有回报
展开
-
堆排序-java实现
根据算法导论书中对对堆排序的讲解,一下代码为java实现 /* * 该类是用来实现最大堆的 */ public class Heap { public static void main(String []args){ int []AA =new int[] {4,1,3,2,16,9,10,14,8,7}; buildHeap(AA); System.out.print原创 2012-12-05 13:13:47 · 471 阅读 · 2 评论 -
快排-java实现
最关键在于理解i,j的意义。同时partition也很重要。 public class QuickSort { public static void main(String []args){ int A[] = {3,2,5,6,8,4,10,7}; quickSort(A,0,A.length-1); for(int X:A) System.out.println(X+原创 2012-12-06 00:48:50 · 446 阅读 · 0 评论 -
计数排序-java实现
根据算法导论的讲解。这里主要需要理解A,B,C。 A为原始数据集合 B为存放排序结果的集合 C为记录比元素值小的数的个数 public class CountingSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub原创 2012-12-06 21:26:55 · 435 阅读 · 0 评论 -
SRM 606 DIV1 450
题意为:首先生成了很多的数,然后让这些数配对。要求,相等的数不能成一对。求最多有多少种配法。 思路:首先,需要明白一个道理。那就是如果出现频率最高的数x,其出现频率超过了50%。那么可以用其他所有的数和这个数数配对。所求配法为其他所有数的总个数。如果这个x的出现频率没有超过50%,那么全部可以配对(除非数的总个数为奇数个,那么此时会剩一个数单着) 通过上面分析,知道了,解题的重要的两步,找到出原创 2014-02-15 03:21:48 · 627 阅读 · 0 评论