
C++
文章平均质量分 72
左前路
Welcome to the 清风一笑而过's home!
展开
-
快速排序、归并排序的原理及应用
一、概念1.快速排序快速排序(英语:Quicksort),又称分区交换排序(英语:partition-exchange sort),简称快排,是一种被广泛运用的排序算法。原理:快速排序的工作原理是通过分治的方式来将一个数组排序。快速排序的最优时间复杂度和平均时间复杂度为O(nlogn)O(n\log n)O(nlogn) ,最坏时间复杂度为O(n2)O(n ^2)O(n2) 。代码实现↓2.归并排序归并排序(英语:merge sort)是一种采用了 分治 思想的排序算法。原理:原创 2021-03-23 13:50:14 · 369 阅读 · 0 评论 -
分治算法
一、概念分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。分治法是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)等等。——百度百科分治,在对于一些排序、搜索之类的方法时,是很有用的。分治常见的方法有:二分。三分等,其中二分是比较常见的。二,典例营例1:[BZOJ]..原创 2021-03-22 13:30:24 · 318 阅读 · 1 评论 -
递推与递归
一、概念1.递归从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程,称为递归。程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前原创 2021-03-07 12:50:28 · 1110 阅读 · 5 评论