算法学习笔记 - Java
可乐煮枸杞
开发工程师
展开
-
直线上最多的点的个数
/** * 题目:给出一个二维平面上的n个点,求最多有多少个点在同一条直线上。 * 思路:求出直线表达式的三个系数a,b,c,将其余的点代入判断是否在此直线上 * 应该还有更好的算法,暂时没想到 * @author libin * @version 0.1 */ public class Test01{ public static void main(String[] args原创 2017-05-31 21:36:06 · 675 阅读 · 0 评论 -
用两个栈实现一个队列
/** * 用两个栈实现队列 * 入队时 offer():向栈1压栈 * 出队时 poll(): * 1 将栈1的元素全部出栈 * 2 将出栈的元素按出栈顺序压入栈2 * 3 栈2出栈(并作为返回值) * 4 将栈2的元素去全部出栈 * 5 按出栈顺序将元素压入栈1 * 空判断 emp原创 2017-06-02 16:53:29 · 161 阅读 · 0 评论 -
对俩个有序数组合并排序
/** * 算法学习 -- 两个有序数组合并排序 */ public class MergeArrayAndOrder { public static void main(String[] args) { int[] a = new int[]{1,3,5,7,9,16,17}; int[] b = new int[]{0,2,4,6,8,10,11,原创 2017-06-05 16:13:40 · 1751 阅读 · 0 评论 -
数组反转
一个数组的倒序 /** * 算法 -- 反转数组 */ public class ReverseArray { public static void main(String[] args) { int[] a = {3,2,1,6,5,4,9,8,7}; int[] b = reverse(a); for(int i=0;i<b.l原创 2017-06-05 11:11:21 · 230 阅读 · 0 评论 -
生产范围内的随机数
/** * 产生范围内的随机整数数 * 带种子时每次产生的随机数相同 */ public class RandomInt { public static void main(String[] args) { RandomInt.showList(RandomInt.getIntRandom(10,5,15)); System.out原创 2017-06-08 17:11:09 · 269 阅读 · 0 评论 -
插入排序1
/** * 插入排序算法: * 将数组中下一个元素插入到已排好的数组中的合适的位置,当所有的元素均插入时完成排序 * Created by hasee on 2017/6/26. */ public class InsertSort { public static void doSort(int... arr){ for(int i=1;i<arr.length;i原创 2017-06-27 16:03:20 · 274 阅读 · 0 评论 -
插入排序2
/** * 插入排序的递归实现: * 使用递归的方法代替循环遍历 * Created by hasee on 2017/6/8. */ public class InsertSort2 { public static void doSort(int[] a){ if(a.length>2){ doSort(Arrays.copyOf(a,a原创 2017-06-27 16:04:50 · 244 阅读 · 0 评论 -
选择排序
/** * 选择排序算法: * 在数组中选出最小(大)的一个元素并与第一个元素交换,然后找出第二小的元素与第二个元素交换…… * Created by hasee on 2017/6/27. */ public class SelectSort { public static void main(String[] args) { doSort(2,1,5,3,6,原创 2017-06-27 16:05:51 · 258 阅读 · 0 评论 -
归并排序
/** * 归并排序算法:将需要排序的数组分成小数组进行归并排序 * Created by hasee on 2017/6/8. */ public class Test { public static void main(String[] args) { int[] a = {2,1,4,3,6,8,7,9,10,13,12}; mergeSort原创 2017-06-28 12:29:41 · 275 阅读 · 0 评论