随笔分类 -  常用算法

二分查找算法java实现
摘要:今天看了一下JDK里面的二分法是实现,觉得有点小问题。二分法的实现有多种今天就给大家分享两种。一种是递归方式的,一种是非递归方式的。先来看看一些基础的东西。1、算法概念。二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。请注意这种算法是建立在有序数组基础上的。2、算法思想。①搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;②如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。③如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。3、实现思路 阅读全文

posted @ 2012-06-29 10:29 vanezkw 阅读(22621) 评论(10) 推荐(1) 编辑

直接插入排序算法java实现
摘要:1、算法概念。每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。2、算法思想。 假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。3、实现思路。①用一个临时变量temp存储第i个元素(i>=1,下标从0开始)。②比较R[i] 和R[i+1],如果R[i+1].compareTo(R[i])<0,则R[i+1] = R[i],即比R[i+1]的集合元素依次往右移动一个单位。③将temp的值赋给R[i].4、实 阅读全文

posted @ 2012-06-25 14:03 vanezkw 阅读(5683) 评论(0) 推荐(0) 编辑

快速排序算法Java实现
摘要:网上关于快速排序的算法原理和算法实现都比较多,不过java是实现并不多,而且部分实现很难理解,和思路有点不搭调。所以整理了这篇文章。如果有不妥之处还请建议。首先先复习一些基础。1、算法概念。快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。2、算法思想。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、实现思路。①以第一个关键字 K 1 为控制字,将 [K 1 ,K 2 ,…,K n ] 分 阅读全文

posted @ 2012-06-21 14:13 vanezkw 阅读(118428) 评论(8) 推荐(1) 编辑

导航