图解算法
一代天骄
公众号:特立独行的猿。
博客:http://hasfun.cn
展开
-
算法图解:二分法查找
二分法查找:从排序好的数组,找到你需要找到的值(t=1),算法复杂度:O(log n)步骤:首先确认查找的数组索引范围,1:假设数据int[] arr = {0,1,2,3,4,5,6,7,8,9}; 2:则搜索范围为 [0,9];即int start =0;int end = 9;3:取数组索引中间的值跟t比较,int middle = (start + end)/2=4;4:如果arr[mi...原创 2018-06-30 12:54:40 · 9865 阅读 · 0 评论 -
算法图解:选择排序
选择排序,时间复杂度O(n*n),查询效率慢。步骤:假设数组int [] arr = {5,3,6,2,1,0},按照从小到大排序。1:取第一个位置的数为最小值,最小值所在的位置为0,即 min = 5, min_index = 0;2:跟arr第1个位置的值开始 比较,如果找到最小值,即 arr[1]<min,则更换最小值min=3,min_index=1;...................原创 2018-06-30 15:04:36 · 439 阅读 · 0 评论 -
算法图解:快速排序
快速排序:假设有数组arr=[3,4,8,1,23,4]1 选择一个基准值,通常arr[0],2 选择一个基线条件:有且经仅当一个数组 或者 数组为空。if arr.length<2 return arr;3 将arr分为2组数据,通过基准值比较,将>基准值的放入新的数组greaterArr,其他的放入lessArr;4 分别对greaterArra 重复 2 3 4操作。俗称 分而...原创 2018-06-30 18:25:36 · 1113 阅读 · 0 评论