
algorithm
热爱满天星
这个作者很懒,什么都没留下…
展开
-
折半查找(二分查找、二分搜索)
折半查找,也称二分查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组已经为空,则表示找不到指定的元素。这种搜索算法每一次比较都使搜索范围缩小一半,其时间复杂度是O(logN)。...原创 2018-09-05 21:53:53 · 586 阅读 · 0 评论 -
改进的冒泡排序
冒泡排序是经典的排序算法,程序员都能快速写出实现代码。直接上代码:public <T extends Comparable<T>> void sort(T[] list) { for (int i = 1, len = list.length; i < len ; ++i) { for (int j = 0; j < ...原创 2018-09-05 22:16:06 · 1564 阅读 · 1 评论 -
求两个数的最大公约数和最小公倍数
最大公约数方法一:欧几里得法(辗转相除法)算法思想:依托于定理gcd(a,b) = gcd(b,a mod b)使用迭代的方式public static int gcd(int a,int b) { while(b!=0){ int temp = b; b = a%b; a = temp; ...原创 2018-09-16 15:41:36 · 345 阅读 · 0 评论 -
快速排序
思路: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。快速排序是分治法的应用,在分治之前要先进行挖坑填数。public void quickSort(int s[], int l, int r) { if (l &lt; r) { ...原创 2018-09-07 10:04:51 · 136 阅读 · 0 评论