算法
文章平均质量分 75
王小码正是在下
一枚探索技术的蓝童鞋
展开
-
Java实现二叉树
import java.util.Arrays;/** * Created by wangxiaoma on 2017/3/3. */class Book implements Comparable { private String name; private double price; public Book(String name, double price原创 2017-03-03 15:16:55 · 308 阅读 · 3 评论 -
【位运算】找出数组中,只出现一次的两个数字
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1).分析:由于限制了复杂度,所以要用异或运算来解,什么是异或?首先,计算机1个字节是8位(1Byte=8bit);其次,异或运算是:两个输入相同时为0,不同则为1。举例数组:{2, 4, 3, 6, 3, 2, 5, 5原创 2017-03-21 10:29:37 · 2050 阅读 · 0 评论 -
【排序】快速排序算法
快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,递归调用,以达到整个序列有序的目的。时间复杂度:Ο(nlogn)代码:public class QuickSort { int AdjustArray(int s[], int l, int r) //返回调整后基准数的位置原创 2017-03-21 10:43:58 · 307 阅读 · 0 评论 -
【排序】归并排序算法
一、归并排序要点:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二、算法思路:将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,原创 2017-03-21 14:35:36 · 344 阅读 · 2 评论 -
Java实现二分查找算法(元素可重复)
public class BinarySearch { public static void main(String[] args) { int[] arrays = new int[]{1,2,3,4,6,6,7,7,8,9,10}; int target = 7; System.out.println(search(arrays, target, 0, arrays.length原创 2017-03-01 14:52:35 · 3906 阅读 · 1 评论