![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 76
20481024
一般
展开
-
查找之顺序查找
顺序查找 : 其实算不上算法 ,直接遍历比较,最基础也是最常用的数据查找方法 后面其他的算法 算是对这种方法优化 复杂度为O(n) ArrayList种获取数组中的 查找指定值得索引 public int indexOf(Object o) { if (o == null) { ..... } else { for ...原创 2019-05-24 13:54:15 · 149 阅读 · 0 评论 -
查找之二分查找
二分查找也十分好理解 取中间值与目标值对比查找 注意下数值边界 public static void main(String[] args) { int[] arr = {4, 6, 9, 12, 34, 56, 78, 89, 2345, 45678}; int[] arr2 = {4}; int[] arr3 = {}; int index = binarySearch(...原创 2019-05-24 14:47:43 · 99 阅读 · 0 评论 -
查找之差值查找
差值查找前提 查找的序列需要有序 线性分布效率很高 理解 :二分查找的优化 二分除法 改成mid=low+(key-a[low])/(a[high]-a[low])*(high-low) 就是按照差值比例去查找 照搬一下二分的代码 运行并对比 //test private static void search(int[] arr, int value) { if(arr == null |...原创 2019-05-24 15:47:24 · 774 阅读 · 0 评论 -
排序之交换冒泡排序
每次和后面比较交换 将最大值交换到最后 进行n-1次循环 public static void main(String[] args) { //随机几个数 int[] arr = new int[10]; for(int i = 0; i < 10; i++) { arr[i] = (int)(Math.random() * 100); } //Syste...原创 2019-05-25 16:08:52 · 83 阅读 · 0 评论 -
查找之交换快排
迭代形式 每一级方法的执行都能将一个取定的基准值放到中间 6 3 2 8 1 5 4 7 9 取6作为基准值 第一级方法partition执行完能将数据按照6位基准左右分割成两部分 public static void sort(int[] L, int left, int right) { int pivot; if(left < right) { pivot = ...原创 2019-05-27 10:35:18 · 135 阅读 · 0 评论 -
数据结构和算法简单概括
数据结构 1:存储结构 (顺序:数组 链表:list 地址链接 ) 2:逻辑结构(线性:线性表、栈、队列 非线性 树 图) 在java中并没有限定某种java实现类就是某一种逻辑结构 ArrayList LinkList 也可以作为栈或队列来使用 只是一种代码逻辑上的概念 算法 针对数据结构的 增、 删、 改、 查(1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找...原创 2019-05-24 11:33:56 · 225 阅读 · 0 评论