算法
相大大
不写博客的厨师,不是好码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Bubble sort
public class Bubble { public static void main(String args []) { int nums[]={99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49}; int a, b, t; int size= nums.length翻译 2017-02-11 16:32:13 · 257 阅读 · 0 评论 -
快速排序算法
class Quicksort { static void qsort(int items[]) { qs(items, 0, items.length-1); } private static void qs(int items[], int left, int right) { int i, j; int x, y; i= le翻译 2017-02-11 16:24:31 · 216 阅读 · 0 评论 -
排序--插入排序
插入排序的基本思想,假设数组前面位置的元素已经排序好,新插入一个元素a[p], 由a[p]与前面a[p-1]比较,若a[p]public static <AnyType extends Comparable<? super AnyType>> void insertSort(AnyType [] a) { int j; for(int p=1; p< a.length; p++)翻译 2017-02-24 19:49:15 · 217 阅读 · 0 评论 -
排序--希尔排序
shellSort 又称为增量排序,间隔gap的位置组成的数组都各自排好序,再gap越来越小直到1,排好整个数组。public static <AnyType extends Comparable<? super AnyType>> void shellSort(AnyType [] a) { int j; for(int gap= a.length/2; gap> 0; gap/=2)翻译 2017-02-24 20:06:39 · 269 阅读 · 0 评论 -
排序--堆排序
/** *heapsort */ private static int leftChild(int i) { return 2 * i +1; }private static <AnyType extends Comparable<? super AnyType>> void percDown(AnyType [] a, int i, int n) { int child; A翻译 2017-02-24 20:22:37 · 289 阅读 · 0 评论 -
实际快速排序 -分割策略
快速排序,枢纽元(比较值)理论上选哪个都可以。实际快速排序包括划分策略 和递归调用。public static <AnyType extends Comparable<? super AnyType>> void quicksort(AnyType [] a) { quicksort(a, 0, a.length-1); }private static final int CUTOFF= 3;翻译 2017-02-25 12:25:49 · 420 阅读 · 0 评论 -
快速选择
选择第K个最大(小)元private static <AnyType extends Comparable<? super AnyType>> void quickSelect(AnyType a, int left, int right, int k) { if(left+ CUTOFF <= right) { AnyType pivot= median3(a, left,翻译 2017-02-25 12:48:28 · 239 阅读 · 0 评论 -
递归算法改进---fibonaci 函数
采用一个表代替递归/** *Compute Fibonaci numbers * f(0)=1, f(1)=1 * f(n)= f(n-1)+ f(n-2); *程序效率低下,运行时间也是T(N) 成指数级增长 */ public static int fib( int n) { if(n<= 1) return 1; else return fib(翻译 2017-02-26 13:00:58 · 631 阅读 · 0 评论 -
递归算法改进---表存储代替冗余递推
/**求解递归关系 *Sum=C(0)+C(1)+...+C(N-1); 即求和运算 *C(N)=(2/N) Sum +N **/ public static double eval( int n) { if (n == 0) return 1.0; else { duoble sum= 0.0; for(int i= 0; i< n; i翻译 2017-02-26 13:22:43 · 393 阅读 · 0 评论
分享