小朋友学数据结构(7):快速排序 一、快速排序 (一)基本思想 选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。 (二)例子 6-1.p ...
分类:
编程语言 时间:
2018-09-08 00:48:28
阅读次数:
183
http://blog.csdn.net/gane_cheng/article/details/52652705 http://www.ganecheng.tech/blog/52652705.html (浏览效果更好) 排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进 ...
分类:
编程语言 时间:
2018-08-25 21:15:43
阅读次数:
229
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 方法1:递归 方法2:循环 ...
分类:
编程语言 时间:
2018-08-23 23:11:20
阅读次数:
231
递归方法,逻辑简洁清晰。这个算法还是很重要的,需要重点记忆理解,面试经常考,与傅里叶变换等并称“20世纪十大算法”。 快速排序算法的平均时间复杂度是 O(nlogn),最坏情况时间复杂度是 O(n^2)。 ...
分类:
其他好文 时间:
2018-08-13 12:21:34
阅读次数:
156
讲述 递归 ,即调用函数自身的编程方法,递归需要的 基线条件即最简单状态,递归条件即指导函数将条件引向最简状态。由于递归的特殊性,调用栈必不可少,栈为先进后出的数据结构,类似高斯消元法的“向前——向后”,我们将问题逐渐堆高简化,再从高处解决,带入底端,此为调用栈。 1 递归 假设要找一把钥匙,而钥匙 ...
分类:
编程语言 时间:
2018-07-09 11:17:32
阅读次数:
167
递归 递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 递归可以将判断、循环两种结构发挥淋漓尽致。 斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F ...
分类:
编程语言 时间:
2018-07-03 14:53:04
阅读次数:
173
要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。 递归法 总体来说,递归法是从最后一个Nod ...
分类:
编程语言 时间:
2018-06-23 20:56:07
阅读次数:
175
求二叉树的最大深度,是常见的一种二叉树算法问题,主要解决办法有两种,一种是使用递归求解,另一种是非递归方式求解。这里给出递归求解方法。递归方法无需判断左右子树是否为空。 问题来源于https://leetcode.com/problems/maximum-depth-of-binary-tree/d ...
分类:
其他好文 时间:
2018-06-02 19:35:32
阅读次数:
179
Java知识,方法递归求不死神兔问题,方法递归删除文件,输出文件后缀名固定的文件的绝对路径
分类:
编程语言 时间:
2018-05-17 18:51:11
阅读次数:
156
题目描述 计算给定数组 arr 中所有元素的总和 输入描述: 数组中的元素均为 Number 类型 输入例子: sum([ 1, 2, 3, 4 ]) 输出例子: 10 1、不考虑算法复杂度,用递归做: function sum(arr) { var len = arr.length; if(len ...
分类:
编程语言 时间:
2018-05-03 16:43:14
阅读次数:
1468