文章列表
package arithmetic;
public class BubbleSort {
/**
* 冒泡排序。
* 从最左端开始,两两比较,如果当前位置的数据比后面一位的数据大,则交换。比较完成向右移动一位,继续比较,直到最右端。
* 然后返回最左端,继续进行比较,至当前位置的下一位为上次比较结束的位置时,返回最左端。如此,每排序一遍,则右端就多一位被确定顺序。直至
* 确定至左端第二位,则排序结束。
*
* 冒泡排序一共有(n-1)+(n-2)+(n-3)+...+3+2+1 = n*(n-1)/2 次比较 所以其运行时间级别为 ...
为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。一般一个数组中的所有元素具有相同的数据类型。
数组分有序数组和无序数组。
数组数据的插入: 直接通过下标进行插入。一般数组中包含一个当前元素个数的变量。时间复杂度O(1)
数组数据的查找:按顺序进行比较。时间复杂度O(N),有序数组可使用二分法进行查找。时间复杂度O(logN)
数组数据的删除:先查找,然后删除,再将后面的元素前移。时间复杂度O(N)
<script>
function delFromLast(){
var s=document.getElementById("a");
for(var i=s.options.length;i>=0;i--){
s.remove(i);//最后结果是option全部删除,
}
}
function delFromFirst(){
var s=document.getElementById("a");
for(var i=0;i<s.options.length;i++){ ...
抽象数据类型:Abstract Data Types (ADT),定义是:一个数学模型及定义在些数学模型上的一组操作。数据模型太抽象了,代码大全中这样说的:一些数据以及对这些数据所进行操作的集合。
上面定义中的数据,是广意上的数据,可以指一组数字,也可以指一组描述一张地图的数据,也可以指一个窗体等等。
ADT定义了数据存储及可对这些数据进行的操作 ,使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储。从而让使用者可以在更高层次(在问题领域,而非底层实现领域)上进行数据操作,隔离了使用与实现。
ADT的描述一般形式如下:
名称 ...
虽然现在的高级语言中,一般的开发工作已经不需要再针对数据结构与算法的细节编程了,也不是每个程序员都要明了数据结构与算法,但这些知识还是有学习的必要的,因为在有些时候确实会有帮助。而且这些知识对于不会的人来说,有一种神秘感与头痛感,略有涉猎就很容易让别人对你另眼相看,所以想在某些地方某些时候充大牛,这也是个很重要的资本 ...对于本人而言,我想了解这些东西一是想看到底有什么高深的,二是想在别人在我面前充大牛的时候,我能知道捅不捅的破。 数据结构概述:数据结构是对计算机内存(或磁盘)的数据的一种安排。主要包括数组、链表、队列、栈、二叉树、哈希表等。数据结构一般是对现实世界的建模,与如何 ...