- 博客(3)
- 收藏
- 关注
原创 希尔排序的实现
0 2 1 3 5 4 6 8 7 9这么一组数据 (9630变换成0360,852变换为258,741变换为147),这么做的好处是什么呢,其优点是可以用相对小的时间将大的数排到后面,将小的数排到前面,达到接近有序的效果。从第一个元素开始,每过间隔gap的数为一组,如图:假设gap为3(PS:gap可以取任意值,这里取3只是为了举例),则9630为一组,852为一组,741为一组。这是基于c语言实现的希尔排序算法, 将间隔为gap的多组预排序数据同时排序,至于gap到底要怎么取,大家可以自行探索。
2025-03-27 20:57:23
216
原创 环形链表中快慢指针中的快指针是否一定能追上慢指针
这样每一次移动它们之间的距离就会缩减2,那么距离就从N变为N-2、N-4最后变为0或-1,为什么会有-1呢,因为N可能为奇数也可能为偶数,当值为-1时,fast就开始新一轮追逐。此时假设环的长度为M,那么此时的-1就是fast快了slow一个身位,也就是他俩的距离为M-1,当M-1为偶数时,fast还有机会追上slow,反之则陷入死循环,永远追不上。fast走四步也是同理,每一次移动它们之间的距离就会缩减3,这时候能找出规律,当N为每一次移动它俩之间的距离的倍数时,fast就能与slow相遇。
2025-03-20 14:06:43
382
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅