✈算法
文章平均质量分 50
青苔小榭
可怕的不是比你强的人,而是比你强的人比你更努力。
展开
-
把中缀表达式变为后缀表达式
1.从左到右依次扫描中缀表达式2.读到一个运算对象就输出,作为后缀表达式的一部分3.事先设置一个运算符栈STACK,读算术运算符4.读到一个算术运算符()就和STACK栈顶的算术运算符()做比较比较规则: 如果2的优先级高于1则把2入STACK栈,然后继续读运算对象否则,将1出栈,用2继续比较,比2优先级小就一直出栈,直到比较到比2优先级大或者#...原创 2017-11-05 16:15:15 · 456 阅读 · 7 评论 -
【Java-插入排序】
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动...原创 2022-07-13 21:08:04 · 465 阅读 · 1 评论 -
多种方式实现斐波那契数列
时间复杂度和空间复杂度都为 n的平方打印结果:可以看出来递归是越来越耗时的。非递归 :时间复杂度 O(n) 空间复杂度O(n)2.3 用数组进行缓存用数组进行缓存:将已经计算出来的值存在数组里避免了重复计算时间复杂度 O(n) 空间复杂度O(n)打印结果:好记性不如烂笔头,知道不如做到。.........原创 2022-07-05 17:06:48 · 458 阅读 · 1 评论 -
【软考】算法-冒泡
冒泡的本质是相邻的两个数两两交换,我这里让小数沉底大树上浮,排序出来的结果都在右边右半部分是一个有序区冒泡核心代码:for (int i = 0; i < arr.Length - 1; i++) { #region 将大的数字移到数组的arr.Length-1-i fo原创 2017-05-03 17:12:54 · 1291 阅读 · 19 评论 -
【软考】算法-插入
插入排序 前面都是有序列 从左上角到右下角(一条红线的部分都是最大的) 无序的数和有序的数比较,从最后一个往前比插入算法核心代码: var length = arr.Length; for (int i = 1; i < length; i++) //每一趟比较几个数 {原创 2017-05-02 12:07:25 · 1348 阅读 · 27 评论 -
【软考】算法-选择
选择排序的本质是先假设第一个数是最大/小的, 记录下第一个数的位置,让第一个数去跟后面的数比较,如果有比他更大/小的,就用这个更大/小的数去继续比较,依照这个规则在这一趟中找到最大/小的,和第一个数交换位置。 后面的数也是这样交换。 以下我都以找最小数为例: 选择排序乍一看来有一点像抓起一个最小的数直接扔到第一个位置上了,其实他的关键在于记录了数的位置 第一趟原创 2017-05-04 10:54:23 · 1447 阅读 · 21 评论