
9/12 Algorithm
文章平均质量分 59
有且仅有
You gotta be a fool to believe that will work!
展开
-
二分查找 - BinarySearch
1. 定义二分查找又称为折半查找首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功特殊要求:表中元素必须是有序的2. Java代码/**原创 2016-04-11 13:12:46 · 555 阅读 · 0 评论 -
排序算法
定义1. 排序排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一类数据元素的任意序列,重新排列成一个关键字有序的序列。2. 排序算法在计算机科学与数学中,一个排序算法(Sorting algorithm)是一种能将一串数据依照特定排序方式进行排列的一种算法3. 排序方式最常用到的排序方式是:数值顺序字典顺序基本上,排序算法的输出必须遵守下列两个原则:输出结果为递增序列原创 2016-03-30 16:41:33 · 759 阅读 · 0 评论 -
冒泡排序 - Bubble Sort
1. 定义冒泡排序是一种较简单的排序,这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成2. 思路在长度为n的数列中 :1次比较2个元素,将大的交换到后边;这样依次类推长度为n需要比较n-1次,结果是最原创 2016-04-06 17:29:59 · 778 阅读 · 0 评论 -
快速排序
定义快速排序是对冒泡排序的一种改进它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列性质交换排序稳定Java代码原创 2016-04-07 16:27:56 · 557 阅读 · 0 评论 -
大O符号与时间复杂度
大O符号1. 定义大O符号(Big O notation)是用于描述函数渐进行为的数学符号。也可以这么说: 用一个大O,在其括号()中,用另一个函数来描述原来的函数的数量级的渐进上界计算机科学中,用于分析算法复杂性非常有用2. 使用这个符号有两种形式上很接近但迥然不同的使用方法:无穷大渐近与无穷小渐近。然而这个区别只是在运用中的而不是原则上的——除了对函数自变量的一些不同的限定, “大O”的形原创 2016-04-01 16:03:18 · 14816 阅读 · 1 评论