
数据结构与算法
记录基础的学习
听友
这个作者很懒,什么都没留下…
展开
-
基本排序算法
public class Sort { public static void main(String[] args) { int[] arr={6,8,5,4,2,1,0,9,0,7,3}; int[] tmp = new int[arr.length]; quickSort(arr,0,arr.length-1); for (int i : arr) { System.out.print(i+" "); .原创 2022-05-02 11:59:15 · 441 阅读 · 0 评论 -
桶排序
public static void bucketSort(int[] arr,int bucketSize){ if(arr.length < 2) return; // 数组最小值 int minValue = arr[0]; // 数组最大值 int maxValue = arr[1]; for(int i = 0;i<arr.length;i++){ if(arr[i] < minValue){原创 2020-07-29 00:26:36 · 268 阅读 · 0 评论 -
归并排序、快速排序
//归并排序 public static void mergeSort(int[] a,int n){ mergeSortInternally(a,0,n-1); } public static void mergeSortInternally(int[] a, int p, int r){ if(p >= r) return; int q = p + (r-p)/2; mergeSortInternally(a,p,q); mergeSortInterna原创 2020-07-26 22:29:23 · 202 阅读 · 0 评论 -
链表(上):如何实现LRU缓存淘汰算法?
链表是一种最基础的数据结构,学习链表有什么用?为了回答这个问题,先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Us.原创 2020-07-25 19:20:03 · 351 阅读 · 0 评论 -
数组:为什么很多编程语言中数组都从0开始编号?
每一种编程语言中,基本都有数组这种数据类型,它是一种最基础的数据结构,在大部分编程语言中,数组都是从0开始编号的,但你是否想过,为什么数组要从0开始编号,而不是从1开始呢?从1开始不是更符合人类的思维习惯吗? 目录如何实现随机访问?低效的“插入”和“删除”容器能否完全替代数组?解答开篇 如何实现随机访问? 什么是数组,专业的解释在这里。数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 通过里面的几个关键词来对数组进行详细的介绍。 第一是线性表(Linear .原创 2020-07-25 18:53:59 · 526 阅读 · 0 评论