Data Structure and Algotithm
文章平均质量分 75
chyeer
这个作者很懒,什么都没留下…
展开
-
排序算法之快速排序
快速排序(Quick Sort)是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Devide-and-Conquer Method)。分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。快速排序的时间复杂度为O(nlogn),无须辅助空间,空间复杂度为O(1)原创 2017-06-28 17:09:52 · 281 阅读 · 0 评论 -
排序算法之堆排序
堆排序前言堆排序、快速排序、归并排序的平均时间复杂度都为,由于堆排序对原始记录的排序状态并不敏感,因此无论是最好、最坏和平均时间复杂度均为。这在性能上显然要远远好于冒泡排序、简单选择排序、直接插入排序的的时间复杂度了。空间复杂度上,它只有一个用来交换的暂存单元,也非常不错。不过由于记录的比较与交换是跳跃式进行,因此堆排序是一种不稳定的排序算法此外,由于初始构建堆所需的比较次数较多,原创 2017-06-24 21:32:54 · 295 阅读 · 0 评论 -
排序算法之归并排序
归并排序归并排序(Merge Sort)就是利用分治法的思想实现的排序方法。它的原理是假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两辆归并,得到得到个n/2个长度为2或者1的有序子序列;两两再归并,……,如此重复,直到得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序。例如数组A有7个数据,分别是: 49 38 65 97 76 13 27,原创 2017-06-28 14:17:20 · 380 阅读 · 0 评论 -
蒙特卡洛方法(Monte Carlo Method)
蒙特卡洛方法(Monte Carlo Method)特卡罗法(Monte Carlo method)是以概率与统计的理论、方法为基础的一种计算方法,蒙特卡罗法将所需求解的问题同某个概率模型联系在一起,在电子计算机上进行随机模拟,以获得问题的近似解。因此,蒙特卡罗法又称随机模拟法或统计试验法。二十世纪四十年代中期,由于科学技术的发展和电子计算机的发明,蒙特卡洛方法作为一种独立的方法被提出来,并首原创 2017-07-08 21:31:37 · 3040 阅读 · 0 评论 -
排序算法之直接插入排序与希尔排序
排序算法之直接插入排序和希尔排序直接插入排序直接插入排序是稳定的排序方法。直接插入排序的基本思想:假设待排序的记录存放在数组R[1...n]中。初始时,R[1]自成一个有序区,无序区为R[2...n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1...i-1]中,生成含n个记录的有序区。第i-1趟直接插入排序:通常将一个记录R[i] (i=2, ...,原创 2017-07-09 08:37:12 · 514 阅读 · 0 评论 -
动态规划--小明通过考试
京东实习生笔试试题【题目描述】小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题才能通过考试。考试结束后,小明估算出每道题做对的概率,p1,p2,...,pn。你能帮他计算出考试通过的概率吗?输入:第一行一个数n(1输出:小明通过考试的概率,最后结果四舍五入,保留小数点后五位。样例输入:450 50 50 50样例输出原创 2017-08-29 23:02:24 · 919 阅读 · 0 评论