- 博客(6)
- 收藏
- 关注
原创 算法-单链表的基本操作(C++)
通过改变每个节点的next域实现新链表的形成,达成:利用原来两个单链表的节点存放归并后的单链表。有两个单链表l1和l2,用一个指针指向他们两个中的其中一个头节点,再创建两个指针分别指向l1和l2的头节点用于遍历链表,遍历每一个节点,并比较大小,将较小的节点连入结果链表。mergeTwoLists函数。
2024-09-27 19:47:28 228
原创 算法很美笔记(Java)——查找与排序(例题)
法一:O(nlgn)遍历每一个数,对于每一个数,去剩余数组用二分法(因为数组有序)找(k - elem),有,则二者凑成一对。法二:O(n)在数组的最左端和最右端设上指针,两指针所指元素相加,与k比较如果大于k,就移动右指针使和变小如果小于k,就移动左指针使和变大相等就输出。
2024-09-24 09:01:14 527
原创 算法很美笔记(Java)——查找与排序(算法总结)
基于比较的查找最快O(logN):折半查找、平衡二叉树、红黑树……但Hash表却有O(c)先性级别的效率,特殊情况下达到O(1)
2024-09-23 20:43:07 227
原创 算法很美笔记(Java)——查找与排序(下-堆,计数,桶,基数)
显然,他是倒着检验排序的(先处理下面的枝叶,再处理上面的,最后处理根,一组一组处理,一组里含一个根和他的叶子节点。2将n个元素分配到各个桶中:取出一个元素的值,通过一定式子运算,得到对应的桶下标,放到这个桶里,如此反复。1每个桶的容量是事先不知道的,所以不能用静态容器(数组),用动态容器(链表)(和计数排序不同的是。先堆化,再将顶端数与末位数交换,再堆化,再交换……4全部放完后,把各个桶内的元素,按桶的次序以及桶内的顺序放回原数组。如果只有两位数,就排两次,有三位数,就排三次,有n位数,就排n次。
2024-09-21 20:46:01 701
原创 算法很美笔记(Java)——查找与排序(下-分治法)
这时候就不用顺位填入,因为本来辅助数组就是拷贝过来的,且前后两部分内部有序,后面的元素就在原数组末尾。
2024-09-20 09:04:54 1013
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人