算法之路
Kingsly_Liang
一个热爱计算机的人。
展开
-
冒泡排序
public static void MaoPao(int a[]) { int t; for(int i = 0; i < a.length - 1; i++) { for(int j = 0; j < a.length - 1 - i; j++) { if(a[j] > a[j + 1]) { t = a[j]; ...原创 2018-03-18 19:00:28 · 181 阅读 · 0 评论 -
随机算法
因为要做一个洗牌的程序,所以学习了一下随机算法。一个通常的方法是为数组的每个元素a[i]赋一个随机的优先级p[i],然后依据优先级对数组a中的元素进行排序。如,初始数组a = <1, 2, 3, 4>,随机选择的优先级p = <36, 2, 62, 19>,则将产生一个数组B = <2,4,1,3>。产生一个随机排列的一个更好的方法是原址排列给定数组。即在进行第...原创 2018-03-18 21:17:43 · 272 阅读 · 0 评论 -
快速排序
基本思想:1、先从数列中选取一个数作为基准数2、分区过程,将比基准数打的数全部放到它的右边,小于或等于基准数的放到它的左边3、再对左右分区重复第二步,知道各区间只有一个数例如对数列 6,1,2,7,9,3,4,5,10,8为了方便,选择数列的第一个作为基准数。此刻,i = 6, j = 8, 先从序列的两端开始探测,先从右往左找一个小于6的数,找到了就在那个数上方停下,然后i再从左往右找一个大于6...原创 2018-03-20 19:00:30 · 150 阅读 · 0 评论 -
链栈(Java)
代码如下: 栈类: import java.util.Iterator; public class Stack<Item> /*implements Iterable<Item>*/ { private Node first; //栈顶 private int N; //元素数量 //链表 private class N...原创 2018-10-03 21:11:11 · 293 阅读 · 0 评论 -
背包(Java)
代码如下: 背包类: package 背包; import java.util.Iterator; public class Bag<Item> implements Iterable<Item> { private Node first; private class Node{ Item item; Node next; } publi...原创 2018-10-03 21:19:06 · 319 阅读 · 0 评论 -
二分查找
import java.util.Arrays; public class BinarySearch { //查找出来的位置是数组的位置,从0开始 public static int rank(int key, int[] a){ //数组必须是有序 int lo = 0; int hi = a.length - 1; while(lo <= hi){ int...原创 2018-09-22 21:12:39 · 154 阅读 · 0 评论 -
斐波那契数列的两种实现方式(递归和循环)
public class Fibonacci { public static long F(int N){ int f0 = 0; int f1 = 1; int fn = 0; if(N == 0) return f0; if(N == 1) return f1; for(int i = 1; i < N; i++){ fn = f0 + f1; ...原创 2018-09-22 21:20:10 · 2126 阅读 · 0 评论