![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法基础
数学真让人头大
这个作者很懒,什么都没留下…
展开
-
快排+归并排序的代码实现
快速排序实现代码:思路:选取区间关键元素,设置左右下标,从右往左遍历,找到比它小的数字。就把右元素的值赋值给左元素所在的位置,之后从左往右遍历,遇到比关键元素大的,就把左元素的值赋给右元素所在的位置。最终这个关键值将会在它最终排序的位置,所以关键就不用再继续进行排序了。之后再分解为以关键字左右两边进行排序。就能做到快排了。#include<stdio.h>#include&...原创 2020-03-24 13:35:41 · 227 阅读 · 0 评论 -
DFS解数独,以及如何生成数独
这个是之前写的非常搓的代码,用回溯法来进行解数独。原创 2020-03-08 21:36:37 · 385 阅读 · 0 评论 -
块状链表的数据结构。
首先,块状链表是数组和链表的结合体。我们知道,在数组中删除,插入一个元素的复杂度是O(n),在链表中,插入和删除的复杂度是O(1)。 而在链表中,查找的复杂度是O(n)的,数组中是O(1)的。于是就有人想到一个方法,把数组放在链表里面,形成块状链表。这里给出结论,块状数组的查询删除插入复杂度为O(x+N/x) 这里的x为块的大小N为元素个数。在普通链表里面 data1 -->dat...原创 2018-07-17 00:17:59 · 430 阅读 · 0 评论 -
线性筛素数及欧拉函数打表。
传统的筛法筛素数由于会重复标记所以会出现多余的操作,导致复杂度上升。这里有一个线性筛素数的方法可以在O(n)的复杂度内将所有非素数标记出来。 首先 ,一个非素数可以看作是多个素数的乘积,如10 可以看作2和5,14 看作2,7, 25==5*5 ,36=2*3*3*2 那么一个数一定由一个最小的质因子,乘以某个数的来的。并且这个关系一定是一一对应的。 可以自己画表尝试验证一下。那么...原创 2018-07-18 23:32:36 · 309 阅读 · 0 评论