算法
archer.wu
当你的才华还撑不起你的野心的时候,就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌,机会永远是留给最渴望的那个人,学会与内心深处的你对话,问问自己,想要怎样的人生,静心学习,耐心沉淀,送给自己,共勉。
展开
-
算法学习(七)——排序总结
算法学习(七)——排序总结前几篇文章已经对一般的排序方法进行了介绍。排序算法有很多,包括插入排序,冒泡排序,堆排序,归并排序,选择排序,计数排序,基数排序,桶排序,快速排序等。插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素进行比较来实现排序,其他排序算法则是利用非比较的其他方法来获得有关输入数组的排序信息。下面就看一下,这些排序算法的时间空原创 2017-02-16 16:29:57 · 567 阅读 · 0 评论 -
算法学习(一)——插入排序
算法学习(一)——插入排序问题:有一个数组,进行排序。方法:类似于扑克牌进行排序,首先是手里没有牌,抓牌然后进行排序。每抓一张就需要从头进行比较大小,发现能够插入的位置,然后进行插入。具体实现:package com.xueyou;public class Main { /** * 打印数组 * @param a */ publi原创 2017-02-11 12:11:28 · 329 阅读 · 0 评论 -
算法学习(二)——冒泡排序
算法学习(二)——冒泡排序问题:给定数组,进行排序方法:依次找到每个位置上的元素。简单理解就是每次得到一个元素的相对大小位置。就想泡泡一样,最大的泡泡会被沉在底下一样。首先找到最大的泡泡,然后依次找到第二大的,第三大的。。。实现:package com.xueyou;/** * 冒泡排序 */public class Bubblesort { /**原创 2017-02-11 13:19:07 · 392 阅读 · 0 评论 -
算法学习(三)——选择排序
算法学习(三)——选择排序简介:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。(摘自百度百科)问题:给定数组,进行排序原创 2017-02-14 09:27:42 · 514 阅读 · 0 评论 -
算法学习(四)——归并排序
算法学习(四)——归并排序问题:给定数组,进行排序。方法:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]的大小,若原创 2017-02-14 11:42:19 · 309 阅读 · 0 评论 -
算法学习(五)——快速排序
算法学习(五)——快速排序通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。(摘自百度百科)首先快速排序的性能很好,但是快速排序是不稳定的。问题:给定数组,进行排序。方法:以数组的第一个元素作为特殊元素,每一次的目的是把数组中大于原创 2017-02-15 10:31:55 · 350 阅读 · 0 评论 -
算法学习(六)——计数排序
算法学习(六)——计数排序计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。[1-2] 当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下原创 2017-02-15 16:14:16 · 369 阅读 · 0 评论 -
算法学习(七)——基数排序
算法学习(七)——基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序原创 2017-02-16 10:37:00 · 527 阅读 · 0 评论 -
有向有环图两点间路径问题
有向有环图两点间路径问题本文主要介绍有向有环图两点间的路径问题。先简要的看一下什么是有向有环图。那么如何利用类似深度优先遍历的方式对1到7之间的路径进行查询呢,下面说一下思路。1、首先需要把有向有环图经过破环,形成有向无环图。2、利用深度优先遍历实现对有向无环图所有路径进行查找。好,下面看一下具体的实现。首先是一个辅助类package com.xueyo原创 2017-12-13 07:38:14 · 6785 阅读 · 2 评论