基本思想 计数排序是一种线性排序算法,它利用了一个数组,因为数组下标的增长是线性的,所以它就把自己的元素转换成新开辟数组的下标。可是下标都是非负数啊?数组当中的值有正有负啊。做一个简单的转化就行了:找到数组中最小元素,用元素值减去,这样一来,所有元素对应的下标就求出来了。(实际上感觉像是个映射函数? ...
分类:
编程语言 时间:
2019-08-15 22:49:00
阅读次数:
119
动态规划是很重要的算法。 动态规划的基本思想是:将求解的问题分解成若干个子问题,先求解子问题,然后再从这些子问题的解得到原问题的解。与分治法的区别是,适合用动态规划解决的问题,经分解得到的子问题往往不是相互独立的。动态规划将问题分解成子问题,但是子问题不相互独立,而是彼此依赖,相互提供帮助,很好的利 ...
分类:
编程语言 时间:
2019-08-13 22:50:14
阅读次数:
136
快速排序(Quick Sort) 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 1 算法描述 快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描 ...
分类:
编程语言 时间:
2019-08-13 22:34:35
阅读次数:
116
problem: https://leetcode.com/problems/house-robber-ii/ 多状态转换dp。我的方法是维护了四个状态。用两趟dp的基本思想也是多个状态。 ...
分类:
其他好文 时间:
2019-08-10 14:09:41
阅读次数:
68
第20课-递归的应用实战二 1. 递归与回溯 (1)递归在程序设计中也常用于需要回溯算法的场合。 (2)回溯算法的基本思想。 ① 从问题的某一种状态出发,搜索可以到达的所有状态。 ② 当某个状态到达后,可向前回退,并继续搜索其它可达状态 ,并继续搜索其它可达状态。 ③ 当所有状态都到达后,回溯算法结 ...
分类:
其他好文 时间:
2019-08-08 19:38:14
阅读次数:
85
/**基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。*算法描述:*比较相邻的元素。如果第一个比第二个大,就交换它们两个;*对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;*针对所有的元素重复以上的步骤,除了最后一个;*重复步骤1~3,直到排序完成。**/publicint[]BubbleSort(int[]args){for(inti=0;i
分类:
编程语言 时间:
2019-08-06 17:00:09
阅读次数:
104
1.HTML简介【了解】 1.1Hyper text markup language 超文本标记语言 超文本:可以对文本进行格式化编辑,还有文本的链接等等,具有传统文本不具备的特性 网页 :在浏览器上面运行 语言 :不需要编译,运行在浏览器上面 1.2HTML基本思想 通过标签包裹内容 使用不同标签 ...
分类:
Web程序 时间:
2019-08-01 18:45:00
阅读次数:
140
继承是oo语言中一个最为人津津乐道的概念。ECMAScript支持实现继承,而且实现继承只要是靠原型链来实现的·原型链 其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 简单回顾一个构造函数,原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实... ...
分类:
其他好文 时间:
2019-07-29 10:19:56
阅读次数:
132
1. 快速排序法介绍: 快速排序(Quicksort)是对冒泡排序的一种改进。 2. 基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 3 ...
分类:
编程语言 时间:
2019-07-25 23:23:51
阅读次数:
134
一、选择排序法 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 for (int i = 0; i < arr.length - 1; i++) { ... 2 简单插入排序在最好情况下 ...
分类:
编程语言 时间:
2019-07-25 19:17:38
阅读次数:
105