![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
ldc__
一个小白
展开
-
快速排序大讲解(数组实现,链表实现,层次分析)
快速排序大讲解思想通过一趟的排序将需要排序的数组分成独立的两个部分,其中一部分都比基准值小,另一部分比基准值大数组实现因为数组是连续的存储空间,所以如果要将数组分成两个部分,需要用交换来完成.void quick_sort(int *num, int l, int r) { if (r <= l) return ; int x = l, y = r, z = num...原创 2019-02-16 12:05:07 · 208 阅读 · 0 评论 -
素数求解(暴力,罗宾米勒,素数筛,线性筛及相关改进)
简单思路思路:简单思路就是直接根据素数的定义实现的,如果一个数是素数那他只能1和他本身整除优化:这里有个优化点,就是枚举的时候我们的判断条件是i * i <= x而不用是i < x如果一个数是素数那么他至少两个因子,而且因子是成对出现的,并且一个成对的因子一个大于等于sqrt(n),一个小于等于sqrt(n),举例子如果两个因子都小于sqrt(n)那乘机一定小于n,反之大于...原创 2019-02-20 21:07:06 · 223 阅读 · 0 评论 -
链表快速排序(三种做法)
前导知识快速排序的思想.选定一个基准值,每次遍历把基准值放到正确的的位置交换指针的做法ListNode *quick_sort(ListNode *head, ListNode *end) { if (head == end) return head;//head和end是同一个节点,或者为末尾的时候 ListNode ret; ret.next = head;//...原创 2019-03-11 22:33:53 · 4450 阅读 · 2 评论