数据结构与算法
文章平均质量分 92
沉泽·
心中有阳,眼里有光。
展开
-
八大排序算法(六)
一、冒泡排序1.1 基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排 序写好后,在进行)1.2 思路分析小结冒泡原创 2022-03-10 16:10:21 · 238 阅读 · 0 评论 -
排序算法介绍和算法时间复杂度(五)
一、排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。二、排序的分类内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。常见的排序算法分类(图):三、算法的时间复杂度3.1 度量一个程序(算法)执行时间的两种方法事后统计的方法这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二原创 2022-03-04 09:24:55 · 286 阅读 · 0 评论 -
递归详解(四)
一、递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时 可以让代码变得简洁。二、递归调用机制打印问题阶乘问题使用图解方式说明了递归的调用机制代码演示:package com.atguigu.recursion;public class RecursionTest { public static void main(String[] args) { // TODO Auto-generated method stub原创 2022-02-25 11:24:34 · 106 阅读 · 0 评论 -
栈的使用详解(三)
一、需求请输入一个表达式 计算式:[722-5+1-5+3-3] 点击计算【如下图】请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5, 但是计算机怎么理解这个算式的(对计算机而言,它接收到的就是一个字符串),我们讨论的是这个问题。-> 栈二、栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行原创 2022-02-24 15:57:26 · 1306 阅读 · 0 评论 -
队列和链表(二)
一、队列队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出1.1数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队 列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front 及 rear 分别记录队列前后端的下标, front会随着数据输出而改变,而 rear 则是随着数据输入而改变,如图所示:当我们将数据存入队列时称为”ad原创 2022-02-21 17:38:00 · 913 阅读 · 0 评论