数据结构和算法
系统了解常见数据结构和算法的本质
怒放de生命2010
态度很重要,方向很重要,方法很重要。
展开
-
快速排序算法和原理
文章目录快速排序原理代码 快速排序原理 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 最本质的总结: 快速排序,说白了就是给基准数据找其正确索引位置的过程. 如原创 2021-03-12 14:28:50 · 10481 阅读 · 3 评论 -
LowB三人组--插入排序原理和java实现
文章目录插入排序原理图java实现代码复杂度 插入排序原理图 https://www.runoob.com/w3cnote/insertion-sort.html java实现代码 /** * 插入排序 */ public class InsertionSortTest { public static void main(String[] args) { int[] arr = {2,4,7,5,3,6,8,9,1}; insertionSort(arr);原创 2021-02-28 21:42:53 · 181 阅读 · 1 评论 -
LowB三人组--选择排序原理和实现
@[快速排序] 原理原创 2021-02-25 11:33:46 · 183 阅读 · 0 评论 -
lowB三人组---冒泡排序原理和实现
这里写自定义目录标题原理分析代码如下:算法复杂度 原理分析 /** * 冒泡排序 * 原理: 从下往上排序, 叫做从前往后排序, 如果前面的数比后面的数大,则交换2个数的位置 * 元素个数为; N * 外层循环: 比较的总趟数 N-1, 每趟数为: i(从0开始) * 内层循环: 无序区范围大小 N-i-1, 也可以理解为:一趟中比较的次数,注意: 指针指向的数从0开始, 最后一个数据不用比较, * 代码关键点: 趟, 无序区范围 * 优化: 如果冒泡排序中的一趟排序没有发生交换,则说明列表已经有序,可以原创 2021-02-24 19:34:26 · 212 阅读 · 0 评论 -
数据结构(8) -- 算法应用实例
文章目录1.最大子列和问题算法1:算法2:算法3:算法4,在线处理:总结: 1.最大子列和问题 算法1: public class Demo5 { static int[] list = {-2, 11, -4, 13, -5, -2}; //算法1: public static int maxSubseqSum1(int[] list) { int l...原创 2020-02-16 20:24:32 · 285 阅读 · 0 评论 -
数据结构(7)--复杂度的渐进表示法
文章目录渐进表示法不同级别函数的表现渐进分析小窍门 渐进表示法 不同级别函数的表现 渐进分析小窍门 完原创 2020-02-08 22:26:51 · 498 阅读 · 0 评论 -
数据结构(6)--什么是好的算法
算法复杂度例子1: 打印1--N递归方式打印循环方式例子2: 求不定多项式什么是好的算法 例子1: 打印1–N 递归方式打印 循环方式 例子2: 求不定多项式 什么是好的算法 完 ...原创 2020-02-08 12:39:15 · 307 阅读 · 0 评论 -
数据结构(5) -- 算法的定义
算法的定义案例:选择排序 案例:选择排序 第一趟比较:程序将记录定位在数组的第一个位置,拿第一个数据与后面的每个数据对比, 用一个变量mix记录比第一个数小的数据的索引,通过比较不断更新mix,最后得到整个数组中最小的元素的索引,将第一个数与第mix个数交换,则最小数位于数组的其实位置了 第二趟比较:程序将记录定位在数组的第二个位置,拿第二个数据与后面的每个数据对比, 得到从第二个数据开...原创 2020-02-07 22:41:31 · 193 阅读 · 0 评论 -
数据结构(4) -- 抽象数据类型
文章目录到底什么是数据结构抽象数据类型例子: 矩阵的抽象数据类型定义 到底什么是数据结构 数据对象在计算机的组织方式 数据对象必定与一系列加载其上的操作相关联 完成这项操作所用的方法就是算法 抽象数据类型 例子: 矩阵的抽象数据类型定义 类型名称: 矩阵(Matrix) 完 ...原创 2020-02-07 19:46:51 · 497 阅读 · 0 评论 -
数据结构(3) -- 关于算法效率
关于算法效率例子: 例子: 有2种写法: 最容易想到的方法: //方式1: 比较low的写法 private static double getF1(int n, double[] a, double x) { int i; double p = a[0]; for (i = 1; i <= n; i++) { ...原创 2020-02-07 18:41:59 · 211 阅读 · 0 评论 -
数据结构(2) --关于空间使用
关于空间使用例子: 例子: 我们实现可以有2种方法: public class Demo1 { public static void main(String[] args) { int n = 1000; long startTime = System.currentTimeMillis(); System.out.println(star...原创 2020-02-07 16:13:40 · 211 阅读 · 0 评论 -
数据结构-(1) -- 关于数据组织
文章目录官方定义--没有如何在书架上摆放书操作1:新书怎么插入操作2: 怎么找到某本指定的书 官方定义–没有 如何在书架上摆放书 图书的摆放要使得2个相关操作方便实现: 操作1:新书怎么插入 操作2: 怎么找到某本指定的书 ...原创 2020-02-07 15:06:50 · 222 阅读 · 0 评论 -
如何将递归解决方案转换为非递归
https://blog.csdn.net/silver9886/article/details/80895580转载 2019-09-22 10:09:03 · 335 阅读 · 2 评论 -
秒懂 时间复杂度
转载文章 一套图 搞懂“时间复杂度” https://blog.csdn.net/qq_41523096/article/details/82142747转载 2019-09-19 08:11:01 · 214 阅读 · 0 评论