算法相关
算法相关说明和实战
kurok_
很懒的coder
展开
-
十种经典排序算法介绍
稳定的,一开始正序的话,不需要交换,但是也要比较固定次数。逆序比较和交换次数最多。冒泡优化:可以设置一个标记位,如果某次循环中有交换出现,就把标记位置为1,如果标记位是0的话直接退出(说明剩下的都有序)。每次循环找到最小的一位位置,遍历一边后交换。选择排序不稳定!一开始正序的话,还是要全部遍历比较。逆序的话交换次数不是最多。优化方法:一趟中既选出最小值,也选出最大值,交换两个位置。假定前面部分都排好序,把每一个元素在已排数组中从后往前找合适位置。插入排序是稳定排序!因为移动耗时高,时间复杂度也是n方。一开始原创 2022-07-13 14:12:11 · 345 阅读 · 0 评论 -
数据结构-堆
纯看完后自己凭记忆打的,可能有疏漏,欢迎批评指正堆是一种特殊的数据结构,它很方便可以找到最大元素和插入元素。使用数组存储的堆可以很容易构造出相应的树。因为堆里面有个规律,树:父节点一定大于两个子节点,且右子节点大于左子节点。数组:第k个一定大于第2k个和第2k+1个,且第2k+1个大于第2k个所以上移的话,假如移动第i个,只需要不断和i/2相比,如果大于i/2的话,就互换位置,然后i=i/2。直到小于等于或者i=1了(到根节点了)。时间复杂度O(logn)。同样是根据上面这个规律。假如移动第i个,先判断它有原创 2022-07-10 21:57:13 · 178 阅读 · 0 评论 -
P/NP/NP完全/NP难
NP问题相关概念原创 2022-07-09 13:33:02 · 285 阅读 · 1 评论