数据结构与算法
数据结构与算法是一个合格程序员的必修之路。
5>>2
talk is cheap, show me the code!
展开
-
排序算法1-选择排序
选择排序是最简单的一种排序算法,实现原理为:从数组中查找最小的的元素放在第一位,交换双方位置。第一次循环 从 a[0] 开始找到 最小值与 a[0] 交换位置第二次循环 从 a[1] 开始找到 最小值与 a[1] 交换位置…因为在不断的选择最小值或者最大值,所以称为选择排序。特点运行时间与输入无关每次循环找出最小元素,并不会对原数组排序,也不会对下一次查找提供便利;无论待排序数组是否有序或者相等的元素和完全无序的元素排序时间一样长。数据移动最少每次循环只会交换两个元素,其他算法基本.原创 2021-05-21 16:56:27 · 156 阅读 · 0 评论 -
排序算法2-插入排序
插入排序(Insertion Sort)是一种简单直观的排序算法,实现原理为未排序数据在已排序序列中,从后向前扫描找到合适位置插入。一个形象的案例,摸扑克牌的时候,手里的牌是已经排好序的,桌子上是未排序的,每次摸一颗,从后面开始比较大小,找到合适的位置插入,完成排序。特点插入排序所需的时间取决于输入中元素的初始顺序,如果一个很大且有序或者近似有序的数组要比散列的数组速度更快。示例代码public class InsertionSort { public static void mai.原创 2021-05-25 16:50:57 · 99 阅读 · 0 评论 -
递归算法
什么是递归简单的说递归就是在一个方法中存在调用自己的情况。递归分类直接递归方法中自己调用自己function a(){ a();}间接递归方法中调用的其他方法,其他方法又调用了自己function a(){ b();}function b(){ a();}适用场景每次调用同一方法,但是方法的参数不同注意事项一定要有退出条件,否则导致死循环,内存溢出即使存在退出条件,循环也不能过多,否则导致内存溢出构造方法禁止使用递归案例1.求和如题:求1-n个数的和原创 2021-05-24 16:34:13 · 73 阅读 · 0 评论