算法
岁月无痕study
这个作者很懒,什么都没留下…
展开
-
二分查找(折半查找)
二分查找了解B+树的时候,看到了二分查找,发现自己只知道名称的意思是折半查找,却不知道是怎么去实现的。后来查阅网上资料,发现二分查找必须要求数据是有序的,这样就会导致插入删除比较麻烦。折半查找适合于不经常变动而查找频繁的有序列表。如果列表是按升序排列,将中间位置记录的关键字(mid)和要查找的关键字(key)比较,如果相等,则查找成功;否则就需要按中间位置记录将表分为前、后两个子表,如果m原创 2016-03-29 19:20:59 · 1611 阅读 · 0 评论 -
java实现冒泡排序算法
冒泡排序的基本思想是从头开始扫描需要排序的元素,把相邻的元素进行对比,然后移动元素,一直到所有的元素是一个有序排列为止。 如果有n个元素,一般需要比较n-1趟,第一趟把最大的移动至最后,第2趟就只需要比较前n-1个元素就行了,所以每一趟需要比较的次数是n-趟数。java算法实现如下:public class Bubble {public static void main(String[] ar原创 2016-07-29 12:02:30 · 276 阅读 · 0 评论 -
java冒泡排序和快速排序的实现
冒泡排序和快速排序都是属于交换排序 1、冒泡排序 冒泡排序的基本思想是从头开始扫描需要排序的元素,把相邻的元素进行对比,然后移动元素,一直到所有的元素是一个有序排列为止。 如果有n个元素,一般需要比较n-1趟,第一趟把最大的移动至最后,第2趟就只需要比较前n-1个元素就行了,所以每一趟需要比较的次数是n-趟数。(换一下markdown编辑器) java算法实现如下:public clas原创 2016-07-19 17:34:02 · 464 阅读 · 0 评论 -
希尔排序 java实现
希尔排序属于插入排序的一种,也称为缩小增量法,是插入排序的一种改进版本,其基本思想是,先取一个小于n的整数i1作为第一个增量,所有距离为a的记录放在同一组,把数组的全部记录分成了a组子序列,再对各组子序列进行直接插入排序,然后,取第二个增量i2作为第二个增量,重复分组和排序,直到最后一个增量为1时,对所有元素进行直接插入排序。希尔排序是对直接插入排序算法的优化,实质上是一种分组插入排序算法。代码pa原创 2017-05-26 11:00:10 · 405 阅读 · 0 评论 -
简单选择排序 java实现
简单选择排序基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。代码实现如下public class SimpleSelectSort { public static void main(String[] args) { int[] arr={34,23,4,52,3原创 2017-06-01 10:48:23 · 683 阅读 · 0 评论 -
直接插入排序 java实现
直接插入排序的算法思路是: 基于给定的一个数组,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。package demo;public class InsertSort { public static void main(String[] args) {原创 2017-05-25 14:34:49 · 417 阅读 · 0 评论