算法
爱学习爱聊天
有计划的去写
展开
-
二分查找-变种
最简单的二分查找图片分析解释:假设要查找的数字是6(value) 定义要查找数组的边界值,首先找到数组的中间值下标 如果小于value,说明要找的值在右边将数组最小值设为:中间值+1 依次类推直至找到value相等的下标,或者最大最小指针指向一个下标停止代码实现public static int search(int [] items,int value){ int low = 0; int high = items.length-1; while (low <原创 2020-09-23 16:14:03 · 129 阅读 · 0 评论 -
复杂度分析/快速排序
一、大O复杂度分析首先我们来看一段代码public void sort(int [] items){ //外层循环从1开始,0无需往前对比 for (int i = 1 ;i < items.length ; i++){ //将要对比的基准值放入临时字段 int temp = items[i]; //内层循环从外层循环开始值往前循环和基准值对比 int j = i-1; for (;j>=0;j--){ //往前循环对比,如果比基准值大,则原创 2020-09-21 17:26:05 · 132 阅读 · 0 评论 -
冒泡排序/插入排序
学习思路:思路讲解 代码实现一、冒泡排序1、通过双重循环,相邻两个数据做对比,通过位置交换使其变得有序2、时间复杂度:O(n*n);空间复杂度:O(1)图片分析解释:外部循环从0开始i 内部循环从0开始j,完整循环后会将本次最大值放入数组最后,下次循环可忽略相应的尾部数据(length-i-1) 重复1、2步即可完成排序代码实现public class BubbleSort { public void sort(int [] items){ //外部循环原创 2020-09-17 18:05:42 · 174 阅读 · 1 评论 -
一致性hash算法
学习思路什么是hash环 对象怎么映射到hash环 服务器节点怎么映射到hash环 对象怎么映射到服务器节点 服务器节点新增、失效影响点分析 虚拟节点一、什么是hash环hash算法:通常的hash算法是将一个value映射到一个32位的数字,也就是对应0至2的32次方-1hash环:就是从0到2的32次方-1首位相连,成为一个环状如下图 ...原创 2019-12-04 16:14:27 · 192 阅读 · 0 评论 -
插入排序
来个手写插入排序 ,末尾源码、、、、、、public static void main(String[] args) { int[] ints = {3, 1, 6, 0, 5, 9, 8}; for (int i = 1; i < ints.length; i++) {//循环整个数组 if (ints[i] < ints[i - 1]) ...原创 2019-07-01 19:50:50 · 102 阅读 · 0 评论 -
大数字加减乘除
来个手写,中间小学加法算错了。。。。。。。。。。public class Multiply { public static void main(String[] args) { int[] ints ={0,0,4,3,4,5,1,2}; int[] multiply = multiply(ints, 8); for (int i=...原创 2019-06-28 16:55:32 · 270 阅读 · 0 评论