基础算法
buptwds
这个作者很懒,什么都没留下…
展开
-
二分查找的递归和非递归写法
二分查找是针对有序序列来说的,在有序序列中使用二分查找能大大提高查找效率,这里记录一下二分查找的递归和非递归写法。非递归写法:public int binarySearch(int[] a, int target) { int len = a.length; if(len == 0) return -1; int low = 0原创 2016-07-18 18:21:44 · 3408 阅读 · 0 评论 -
二叉排序树中查找元素的递归和非递归写法
上一篇介绍了二分查找的递归和非递归写法,这一篇文章主要记录二叉排序树中查找元素的递归和非递归写法。二叉排序树又称为二叉查找树,也称为二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的原创 2016-07-18 18:35:47 · 7765 阅读 · 0 评论 -
冒泡排序
记录一下冒泡排序的写法。public void bubbleSort(int[] arr) { int n = arr.length; for(int i = 0;i<n-1;i++) {//比较的趟数 int flag = 0;//标记是否有交换 for(int j = 0;j<n-1-i;j++) {//每趟比较次数原创 2016-07-19 15:52:32 · 346 阅读 · 0 评论 -
快速排序
这里介绍快速排序的两种写法,其中第二种方法更通用,其中的partition方法更是在很多地方可以应用。 快速排序是一个递归的过程,每次都是将需要排序的序列分为两个部分。 第一种写法:public void quickSort(int[] arr,int left,int right) { if(left >= right)//递归结束条件 return;原创 2016-07-19 16:07:50 · 555 阅读 · 0 评论 -
归并排序
归并排序也是一种效率比较高的排序方法,主要思想是:将数组分为两个部分,如果两个部分都是有序的,那么将两个部分合并即可。如何使得两个部分都有序呢,那就是将每个部分再分成两个部分…直到每个部分只剩下一个元素或者只有该部分只有一个元素,然后再执行合并操作,上述分割操作明显是一个递归的过程。 合并操作代码如下://合并,数组的两边已排好序 public void merge(int[] a, int st原创 2016-07-19 22:42:09 · 491 阅读 · 0 评论