算法思想
Yeoman92
You can! Because you were the best one of the 120.
展开
-
选择排序算法
选择排序是和冒泡排序差不多的一种排序。算法描述 它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末尾)位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。算法例析下面以对 9, 3, 5, 8, 2, 7 进行选择排序说明。 9, 3, 5,原创 2016-09-30 21:05:40 · 3611 阅读 · 0 评论 -
递归算法及其应用
递归算法概述:递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。 在数学与计算机科学中,递归是指在函数的定义中使用函数自身的方法。 递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且原创 2016-09-28 16:06:04 · 3839 阅读 · 0 评论 -
简单例子说明快速排序算法
快速排序快速排序简单的说就是选择一个基准,将比基准大的数放在一边,小的数放到另一边。对这个数的两边再递归上述方法。如:排列 66 13 51 76 81 26 57 69 23 以66为基准,升序排序的话,比66小的放左边,比66大的放右边, 类似这种情况 13 。。。 66。。。69具体快速排序的规则一般如下: 从右边开始查找比66小的数,找到的时候先等一下,再从左边开原创 2016-09-27 21:17:24 · 6953 阅读 · 0 评论 -
简析穷举算法,及其简单应用
简析穷举算法,及其简单应用穷举概述穷举法又称列举法,其基本思想是逐一列举问题所涉及的所有情况。穷举法常用于解决“是否存在”或“有多少种可能”等问题。应用穷举法时应注意对问题所涉及的有限种情形须一一列举,既不能重复,又不能遗漏。穷举通常应用循环结构来实现。在循环体中,应用选择结构实施判断筛选,求得所要求的解。虽然巧妙和高效的算法很少来自穷举,但穷举设计作为一种常用的基础算法也很有意义: (1原创 2016-09-27 18:33:59 · 10810 阅读 · 1 评论 -
判断各种排序算法的稳定性
排序算法稳定性 如果在一个待排序的序列中,存在2个相等的数,在排序后这2个数的相对位置保持不变,那么该排序算法是稳定的;否则是不稳定的。举个例子 对五个同学(A,B,C,D,E)进行成绩排序,他们的成绩分别为:90,88,79,88,92,按成绩从高到低排(92,90,88,88,79):E,A,B,D,C——稳定的(B,D的相对位置没有变化)E,A,D,B,C——不稳定的(B,D的相对位原创 2017-03-24 13:28:42 · 16023 阅读 · 2 评论 -
冒泡排序算法
实际中,冒泡排序的使用还是极少的,面试中可能会问到。它适合数据量级很小的情况,其算法的效率比较低,但是作为入门的排序算法,还是值得学习的。冒泡排序的核心思想:冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。算法例析:下面以对 9, 3, 5, 8, 2, 7 进行冒泡排序说明。 第一轮 排序过程 9,原创 2016-09-30 19:12:21 · 3677 阅读 · 0 评论 -
二分查找算法
算法概述 当数据量很大时适宜采用二分法查找,其是一种效率较高的查找方法,但前提条件是要查找的集合必须是有序的,或是升序排列或是降序排列都可以。二分法又称折半查找,故名思意就是就是从中间开始比较查找,其基本思路是:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段原创 2016-10-01 11:30:32 · 6116 阅读 · 0 评论 -
插入法排序——PHP
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, 找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序), 因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 5,2,4,6,1,3 2,5,4,转载 2017-10-12 17:49:38 · 583 阅读 · 0 评论