算法
款冬
所有文章搬运自个人Github: https://github.com/YuzikiRain/Learn。
如遇到csdn显示问题,复制文章标题到Github的Learn仓库中直接查看markdown原文
展开
-
插入排序
简述插入排序就像是打牌或者打麻将时将拿到的新牌根据大小顺序插入到合适位置(比前一张牌大,比后一张牌小)对于一个待排序的序列,有i、j两个下标。i 用来标记当前要(重新)插入到正确位置的牌的下标,并在1 ~ data.Length-1 之间遍历(从前往后遍历整个序列,除去自身位置)。j 用来在 i 遍历时,在0 ~ i-1(除去 i 位置)之间遍历并找到合适位置(比前一张牌大,比后一张牌...原创 2018-06-29 15:20:57 · 114 阅读 · 0 评论 -
选择排序
简述每次从序列的无序部分选出最小(或最大)的元素,与序列的无序部分的起始位置的元素交换对于一个待排序的序列,有i、j两个下标。i 用来标记序列中还未有序的部分的当前下标(即只会遍历无序部分)。j 用来遍历 i~Length-1(即序列无序部分) ,并找出其中最小(或最大)的元素。特点每次元素交换会立即使得元素被放到正确的位置上,如果某个元素位于正确的最终位置上,则它不会被移...原创 2018-06-29 17:52:01 · 125 阅读 · 0 评论 -
冒泡排序
简述假设按照索引越大元素越大的顺序排列对于一个待排序的序列,有i、j两个下标。i 用来标记序列中还未有序的部分的当前下标(即只会遍历无序部分)。j 用来遍历 i~Length-2部分(这部分已经为相对有序序列)并指向bubble ,如果临近的下一个元素比bubble大则两者交换(即bubble上升了),此时下标自增1,于是仍指向bubble,否则该bubble已经在相对有序序列中处于正...原创 2018-06-29 23:19:37 · 299 阅读 · 0 评论 -
快速排序
简述使用一个基准值,从右向左遍历,将比基准值小的元素丢到左边,然后再从左向右遍历,将比基准值大的元素丢到右边。分治法思想,每次基准值完成左小右大的划分后,再对基准值切分开的左右两个序列再次使用各自序列内的基准值进行左小右大的划分,直到无法再分时排序就完成了。对于一个待排序的序列,有i、j两个下标。i 从左向右遍历。j 从右向左遍历。一般取左第一个元素作为基准值,那么在循环时应该先 ...原创 2018-06-30 17:30:30 · 108 阅读 · 0 评论 -
斐波那契数列
递归方法int Fib(int n){ if(n==0) return 0; else if(n==1) return 1; else return fibo(n-1)+fibo(n-2); }在递归过程中重复计算了之前已经计算出结果的项,。时间复杂度为O(n^2)。改进后的迭代方法x 表...原创 2018-07-17 10:30:08 · 213 阅读 · 0 评论