- 博客(23)
- 收藏
- 关注
原创 使用JS编写一个程序实现将以下字符串中的信息统计出来,实现功能如下要求
提示:chrs[] --> chr --> if(chr>=’a’ && chr=’A’ && chr chr --> if(chr>=’0’&& chr
2024-07-10 15:48:30
209
原创 数据结构 - 树及二叉树的应用
树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。二叉树的子节点分为左节点和右节点。如果该二叉树的所有叶子节点都在最后一层,并且结点总数= 2^n -1 , n 为层数,则我们称为满二叉树。如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,我们称为完全二叉树。
2023-07-17 18:40:44
1119
原创 数据结构-哈希表【包含实际应用,操作雇员信息】
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。。
2023-07-17 12:20:50
172
1
原创 数据结构与算法-查找算法-插值查找
将折半查找中的求mid 索引的公式 , low 表示左边索引left, high表示右边索引right。插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。对于数据量较大,关键字分布比较均匀的查找表来说,采用插值查找, 速度较快。关键字分布不均匀的情况下,该方法不一定比折半查找要好。key 是要查找的元素。
2023-07-17 06:36:54
85
1
原创 数据结构与算法-查找算法-斐波那契查找
黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇的数字,会带来意向不大的效果。斐波那契数列 {1, 1, 2, 3, 5, 8, 13, 21, 34, 55 } 发现斐波那契数列的两个相邻数 的比例,无限接近 黄金分割值0.618。
2023-07-17 06:32:41
98
1
原创 数据结构与算法-排序算法-基数排序
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法。基数排序(Radix Sort)是桶排序的扩展。基数排序是1887年赫尔曼·何乐礼发明的。它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。
2023-07-17 06:23:48
66
1
原创 数据结构与算法-排序算法-归并排序
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。
2023-07-17 06:16:37
52
1
原创 数据结构与算法-排序算法-快速排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序(Quicksort)是对冒泡排序的一种改进。
2023-07-17 06:09:16
64
1
原创 数据结构与算法-排序算法-希尔排序
希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。
2023-07-17 06:04:47
69
1
原创 JAVA排序算法 -- 选择排序
选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。
2023-07-12 19:53:18
165
1
原创 排序算法 -- 冒泡排序
因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的优化,可以在冒泡排序写好后,在进行)。通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。
2023-07-12 19:49:49
79
1
原创 数据结构 -- 递归应用 -- 八皇后问题
理论上应该创建一个二维数组来表示棋盘,但是实际上可以通过算法,用一个一维数组即可解决问题. arr[8] = {0 , 4, 7, 5, 2, 6, 1, 3} //当得到一个正确解时,在栈回退到上一个栈时,就会开始回溯,即将第一个皇后,放到第一列的所有正确解,全部得到。,继续放在第二列、第三列、依次把所有列都放完,找到一个合适。八皇后问题,是一个古老而著名的问题,是。个皇后也能放在一个不冲突的位置,算是找到了一个正确解。继续第三个皇后,还是第一列、第二列。下标 表示第几行,即第几个皇后,
2023-07-12 11:36:05
123
1
原创 数据结构 -- 栈的介绍以及使用数组模拟栈
根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。:在跳往子程序前,会先将下个指令的地址存到堆栈中,直到子程序执行完后再将地址取出,以回到原来的程序中。:和子程序的调用类似,只是除了储存下一个指令的地址外,也将参数、区域变量等数据存入堆栈中。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种。(Top),另一端为固定的一端,称为。允许插入和删除的一端,为。栈的英文为(stack)
2023-07-10 15:24:43
98
1
原创 数据结构 -- 双链表的应用场景
单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到temp,temp是待删除节点的前一个节点。单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。使用带head头的双向链表实现 –水浒英雄排行榜。
2023-07-09 17:40:43
654
1
原创 单链表 -- 合并两个链表后, 依然有序
3. 若到达新链表末尾, 但链表2依旧存在数据,其数据直接添加至新链表末尾。2. 遍历另一个链表(链表2), 在新链表中判断其应该插入的位置。1. 创建一个新链表让其指向其中一个链表, 如链表1。
2023-07-09 16:03:33
204
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人