
算法(程序员内功心法)
云都小生
终身学习者。
展开
-
直接插入排序算法
更多精彩内容,尽在 云都小生 优快云博客 & 公众号:云都小生 2017/8/31 1:33:54 Java实现 2017/8/31 9:36:59 C语言实现 @Author:云都小生(Cloudking)原创 2017-08-31 09:57:59 · 395 阅读 · 0 评论 -
二分查找法
@Author:云都小生概述 二分算法是一种查找算法,又称折半查找法,是分治思想的具体实现。从一个有序列表中,找到的某个关键字,效率肯定要比遍历法高很多。遍历法的时间复杂度是O(n),二分查找算法的时间复杂度是O(lgn)。算法是这样的,给定一个有序数列a {1,2,13,23,55}如果我们想查找数据23,就先0+a.length/2(折半) = 2;比较一下a[2] == 23,如果是就返回下原创 2017-10-18 10:16:35 · 339 阅读 · 0 评论 -
算法——递归算法
@Author:云都小生概念 递归算法的概念,就是通过不断地调用自身,最终达到解决问题的目的。递归有两个点需要注意: 1. 要不断的调用自身; 2. 这个递归要有出口,不能成为死循环; 看下面的例子。用递归解决阶乘 很多介绍递归算法的,都会用递归来做一个题目:计算一个数的阶层。例如:计算5的阶层,!5 = 5 X 4 X 3 X 2 X 1用递归来实现:public class Tes原创 2017-10-09 16:31:36 · 570 阅读 · 0 评论 -
冒泡排序算法
作者:云都小生概念 冒泡算法是一种简单的排序算法,时间复杂度为O(N^2)(两层循环)。冒泡算法本质上只有四个字:轻浮重沉。例如对一个数列进行排序 [3,4,12,4,1,6]轻的气泡就是指最小的数,重的气泡就是指比较大的数,小的数要往前移动,大的数要往后移动。(如果是按照从大到小的顺序,就相反)简单冒泡排序 我们先来看一张图,这张图是这样的。每一层循环我都进行一次对比,将最大的数放到后面去。p原创 2017-10-14 14:28:37 · 915 阅读 · 0 评论 -
归并排序
@Author:云都小生概述 今天我们要来学习一个排序的算法——归并排序。个人觉得,理解起来算是比较容易的,但是要用代码去实现,就比较难了。归并排序主要分为两个部分,第一个部分是分解,第二个部分是排序。归并排序的算法思想是:每次将序列分解,最后分解成长度为1的多个自序列,然后再两两归并排序,最后得到一个长度为n的有序序列。如下图: 代码实现import java.util.Arrays; pub原创 2017-11-12 23:18:41 · 240 阅读 · 0 评论 -
快速排序
算法——快速排序@Author:云都小生 h3{color:green;font-size:24} p{font-size:22} 概述——理解快速排序 快速排序算法是一种比冒泡效率更高的算法,既剩时间有省空间。这个算法是由东尼霍尔提出的,后来有很多人进行了优化。算法是这样的,一开始给定一个数列:{6,2,8,3,5,1,9,4,7,10}开始的时候,我们选择一个数作为基准数,就选6吧。接着原创 2017-10-30 16:36:57 · 309 阅读 · 0 评论 -
哈希算法
Author:云都小生概述 首先来回忆一下,之前我们之前是怎么在一个序列中查找某个数据的?第一,我们可能会想用“迭代”,挨个的找。第二,如果序列是有序的,我们可以考虑二分查找。但是,当查找的序列很大的时候,这些算法看起来并不怎么高效。哈希表又称为散列表,哈希算法又称散列算法。我用最简单的话来概括一下哈希表、哈希算法。哈希表有点类似数组,数组是通过下标去索引数据。而哈希表,是把所有的数据,通过一个哈原创 2017-12-16 19:41:48 · 520 阅读 · 0 评论 -
选择排序
@Author:云都小生(Cloudking)概述 选择排序也是一种简单直观的算法,效率比冒泡更高一丢丢,选择排序也是比较元素大小进行排序的算法之一。算法import java.util.Arrays;public class SelectSort { public static void main(String[] args) { int[] nums = {4,1,5,1原创 2017-12-17 12:04:01 · 233 阅读 · 0 评论