数据结构与算法javascript描述(五) 选择排序
2015-11-09 22:56
651 查看
选择排序从数组的开头开始, 将第一个元素和其他元素进行比较。 检查完所有元素后, 最小的元素会被放到数组的第一个位置, 然后算法会从第二个位置继续。 这个过程一直进行, 当进行到数组的倒数第二个位置时, 所有的数据便完成了排序。
测试
function CArray(numElements) { this.dataStore = []; this.pos = 0; this.numElements = numElements; this.insert = insert; this.toString = toString; this.clear = clear; this.setData = setData; this.swap = swap; //this.bubbleSort =bubbleSort; this.selectionSort = selectionSort; for ( var i = 0; i < numElements; ++i ) { this.dataStore[i] = i; } } function setData() { for ( var i = 0; i < this.numElements; ++i ) { this.dataStore[i] = Math.floor(Math.random() * (this.numElements + 1)); } } function clear() { for ( var i = 0; i < this.dataStore.length; ++i ) { this.dataStore[i] = 0; } } function insert(element) { this.dataStore[this.pos++] = element; } function toString() { var retstr = ""; for ( var i = 0; i < this.dataStore.length; ++i ) { retstr += this.dataStore[i] + " "; if (i > 0 & i % 10 == 0) { retstr += "\n"; } } return retstr; } function swap(arr, index1, index2) { var temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp; } function selectionSort(){ var min, temp; for(var outer = 0; outer <= this.dataStore.length-2; ++outer){ min = outer; for (var inner = outer +1;inner <= this.dataStore.length-1; ++inner){ if(this.dataStore[inner] < this.dataStore[min]){ min = inner; } swap(this.dataStore,outer,min); } } }
测试
var numElements = 10; var mynums = new CArray(numElements); mynums.setData(); console.log(mynums.toString()); mynums.selectionSort(); console.log(); console.log(mynums.toString());
相关文章推荐
- 数据结构与算法javascript描述(四) 冒泡排序
- 复数类Complex的Java实现(数据结构 例 1-4)
- 【数据结构与算法分析】2.1 斐波拉切数列算法实现
- 数据结构实验之二叉树一:树的同构
- 数据结构 文学研究助手(AC自动机)
- 数据结构基础5.4:堆(HEAP)的基本操作(插入与删除)
- hdu5542 CCPC中国赛 dp + 树状数组
- 【ShancoLove】带你看数据结构——第十二课:图
- 【ShancoLove】带你看数据结构——第十一课:哈夫曼树
- java数据结构
- 数据结构之最短路径Dijkdtra算法
- 网络常用的数据结构
- 第八周--数据结构--计数的模式匹配
- 第八周 数据结构之自建算法库——链串
- 第八周 数据结构实践项目——串 【项目2 - 建立链串的算法库】
- 项目2--用二叉树求解代数表达式
- 第11周SHH数据结构-【 项目1 层次遍历算法 】
- 第八周 数据结构实践项目——串 【项目1 - 建立顺序串的算法库
- *第十一周*数据结构实践项目一【二叉树的层次遍历算法】
- 项目1.4--哈弗曼编码的算法验证