
算法(Java)
码农凯凯
看我学渣奋起直追之路
展开
-
算法Java第一天(二分查找)
package cqu.edu.lk; public class BinarySearch { public static void main(String[] args) { int[] test = {1,2,3,4,5,6,7,8,9}; int loc1 = binarySearch(test,3); int loc2 = binarySearch(test,3,0,tes原创 2015-11-04 22:53:37 · 321 阅读 · 0 评论 -
从零开始学算法——插入排序
插入排序基本是算法入门吧,很简单的一个思想:把一个数组中的数想象成手中的扑克牌,右手拿着一副乱序的牌,然后一张一张的按照大小放到左手中。 A是一个数组,A[1,2,….n]表示数组非降序排序:INSRETSORT(A)for j=2 to A.length key = A[j] i = j-1 while i>0 and A[i]>key A[i+1] =原创 2015-12-15 17:56:39 · 325 阅读 · 0 评论 -
从零开始学算法——选择排序
选择排序思想:(假设升序)找到最小的数和数组中第一个数交换,然后找次小的数和第二个数交换,然后找第三小的数和第三个数交换。。。。。一直找到第n-1个小的数和第n-1个数交换,排序结束。注意:只需要找n-1个数,不需要找n个数。因为找到前n-1个数,那么第n个数自然就是最大的那一个。非升序排序:SELECTION-SORT(A) for i=1 to A.length-1 ma原创 2015-12-15 18:43:39 · 533 阅读 · 0 评论 -
分治法
许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次的调用自身以解决紧密相关的若干子问题。 这些递归算法遵循分治法的思想:将原问题分解成若干个和原问题相似的子问题,然后递归的求解子问题,最后把子问题的解合并,就为最终原问题的解。分治模式在每层递归时都有3个步骤: 分解成子问题 解决子问题 合并子问题的解 接下来看一下归并排序:归并排序严格遵守分治思想 1. 把长度为n的数组分原创 2015-12-16 21:41:11 · 640 阅读 · 0 评论