javascript实现快速排序
2012-08-20 00:35
330 查看
简述:
用到javascript的排序一组数字,js没有直接的数字比较的函数可以调用,所以自己写了一个快速排序
知识点:
1. 正则表达式提取正负数字的string
2. str 转数字 放回列表
3. js的对象Sort类的声明及定义
4. Sort类构造函数、成员函数定义方式(prototype)
5. 快速排序算法
代码:
输出:
用到javascript的排序一组数字,js没有直接的数字比较的函数可以调用,所以自己写了一个快速排序
知识点:
1. 正则表达式提取正负数字的string
2. str 转数字 放回列表
3. js的对象Sort类的声明及定义
4. Sort类构造函数、成员函数定义方式(prototype)
5. 快速排序算法
代码:
<!DOCTYPE html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />. <html> <title>Quick Sort</title> <head> <script type = "text/javascript"> /*************Get Number From Input***********/ function getNumList(){ var result = ""; var nums = document.getElementById('numbers').value; var reg = /([-][1-9][0-9]*)|([1-9][0-9]*)/g; var numStrList = nums.match(reg); var numList = new Array(); if(numStrList != null){ for(var i = 0;i < numStrList.length;i++){ var intNumber = parseInt(numStrList[i]); numList.push(intNumber); } } return MainProgram(numList); }; /*****************Main*************************/ function MainProgram(numList){ var sort = new Sort(numList); var sortedList = sort.getSortedList(); if(sortedList == null) document.getElementById('result').innerHTML = "WRONG INPUT"; else{ document.getElementById('result').innerHTML = sortedList.join(','); } } /**************Sort Class***********************/ var Sort = function(list){ this.resultList = list; }; Sort.prototype.Partition = function(start,end){ var baseValue = this.resultList[start]; var basePos = start; for(var j = start + 1;j <= end;j++){ if(baseValue > this.resultList[j]){ basePos++; //move the base position this.Swap(basePos,j); } } // move the base value to the correct place , before are smaller , behind are bigger this.Swap(start,basePos); return basePos; } Sort.prototype.QuickSort = function(start,end){ if(start < end){ var basePos = this.Partition(start,end); this.QuickSort(start,basePos - 1); this.QuickSort(basePos + 1, end); } }; Sort.prototype.Swap = function(pos1,pos2){ var temp = this.resultList[pos1]; this.resultList[pos1] = this.resultList[pos2]; this.resultList[pos2] = temp; } Sort.prototype.getSortedList = function(){ this.QuickSort(0,this.resultList.length - 1); return this.resultList; }; </script> </head> <body> <B> Quick Sort</B> <br> <br> <input type= "text" id = 'numbers' value = '' /> <input type = 'button' value = "exec" onclick = 'getNumList()'/> <br> <br> <B>SORTED LIST: <B> <b id = 'result'></b> </body> </html>
输出:
相关文章推荐
- 快速排序之JavaScript实现
- JavaScript实现冒泡排序、快速排序、插入排序
- 算法的JavaScript实现之快速排序
- 学习笔记:快速排序的C++、JavaScript(2种方法)、Java实现
- 快速排序javascript实现
- 快速排序(Quicksort)的Javascript实现
- 快速排序,选择排序,直接插入,冒泡排序的javascript实现
- Java&&JavaScript:实现快速排序
- javascript实现快速排序
- JavaScript实现冒泡(选择、快速)排序可视化
- javaScript实现快速排序
- 快速排序 javascript实现
- javascript实现快速排序
- 快速排序Java实现和Javascript实现
- Javascript中实现JSON数组多键值排序
- 快速排序代码实现
- 快速排序--Java实现
- 随机快速排序的代码实现
- 快速排序的简单实现