随笔分类 -  排序和查找算法

摘要:像归并排序一样,快速排序也使用分治模式(因此也是用递归) 1.1快排与归并的区别: 快速排序按照原址工作,快速排序渐进运行时间介于最坏情况和平均情况之间。尤其是快排的最坏运行时间是θ(n^2), 但是他的平均情况下的运行时间要更好一些。快速排序也有好的常数因子(比归并排序要好一点),并且它通常是实践 阅读全文
posted @ 2018-04-08 10:29 家迪的家 阅读(180) 评论(0) 推荐(0)
摘要:1.1分治算法的概述 1.分解:把一个问题分解为多个子问题,这些子问题是更小实例上的原问题。2.解决:递归求解子问题,当问题足够小时,按照基础情况求解。3.合并:把子问题的解合并成原问题的解。 1.2有序数列的合并 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小 阅读全文
posted @ 2018-04-07 10:12 家迪的家 阅读(145) 评论(0) 推荐(0)
摘要:插入排序算法有种递归的思想在里面,它由N-1趟排序组成。初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。 然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序; 第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序; ..... ..... 第N-1 阅读全文
posted @ 2018-04-05 19:23 家迪的家 阅读(149) 评论(0) 推荐(0)
摘要:直接选择排序:直接选择排序(Straight Select Sort)算法思想:第一趟从n个元素的数据序列中选出关键字最小/大的元素并放在最前/后位置, 下一趟从n-1个元素中选出最小/大的元素并放在最前/后位置。以此类推,经过n-1趟完成排序。时间复杂度O(n**2) 阅读全文
posted @ 2018-04-05 18:57 家迪的家 阅读(116) 评论(0) 推荐(0)
摘要:优点: 从包含n个元素的数组中执行查找操作仅仅需要O(lg n)时间 内容: 在任意情况下,我们仅仅考虑某个子数组,也就是说,介于两个索引之间的部分数组,将两个索引依次记为p=1,r=n,因此开始时, 子数组为整个完整数组。我们反复将子数组规模减半,直到发现以下任何一种情况发生:要么找到了要查找的元 阅读全文
posted @ 2018-04-05 10:30 家迪的家 阅读(131) 评论(0) 推荐(0)