先根据个位,将个位数从小到大排列;将个位排列好的数再对十位数的从小到大排列。
Queue.js
function Deque() {
this.dataStore = [];
//进队列,从尾部添加数据
this.enqueue = function (data) {
var length = this.length();
this.dataStore[length] = data;
}
//进队列,从头部添加数据
this.enqueuehead = function (data) {
var length = this.length();
for(var i=length;i>=1;i--) {
this.dataStore[i] = this.dataStore[i-1];
}
this.dataStore[0] = data;
}
//从队列头部删除数据,并且获得这个数据
this.dequeue=function () {
var length = this.length();
var front = this.dataStore[0];
for(var i=1;i<length;i++) {
this.dataStore[i-1] = this.dataStore[i];
}
this.dataStore[length-1] = null;
this.dataStore.length--;
return front;
}
//从队列尾部删除数据,并且获得这个数据
this.dequeueback=function () {
var length = this.length();
var back = this.dataStore[length-1];
this.dataStore[length-1] = null;
this.dataStore.length--;
return back;
}
//依次返回当前队列的数据
this.toString=function () {
return this.dataStore.toString();
}
//获得队列最前面的数据
this.front=function(){
return this.dataStore[0];
}
//获得队列最后面的数据
this.back=function () {
return this.dataStore[this.dataStore.length-1];
}
//判断当前队列是否为空
this.empty=function () {
if(this.dataStore.length==0){
return true;
}
else{
return false;
}
}
//获取队列的长度
this.length = function () {
return this.dataStore.length;
}
//遍历队列
this.forEach = function (call) {
//获得队列的长度
var length = this.length();
for(var i=0;i<length;i++) {
call(this.dataStore[i]);
}
}
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>快速排序</title>
<script src="Queue.js"></script>
</head>
<body>
</body>
<script>
//创建两个队列,一个用于存储除10的余数,一个用于存储除10的商
var queues = [];
var queues1 = [];
for(var i=0;i<10;i++) {
queues[i] = new Deque();
queues1[i] = new Deque();
}
//随机产生10个1到99的数
for(var i=0;i<10;i++) {
var rand = Math.floor(Math.random()*99)+1;
var index = rand%10;
//将除10的余数加到队列queues中,使个位数从小到大排列
queues[index].enqueue(rand);
}
for(var i=0;i<10;i++) {
//遍历队列queues
queues[i].forEach(function (item) {
var index = Math.floor(item/10);
//将除10的商加到队列queues1中,使十位数从小到大排列
queues1[index].enqueue(item);
})
}
for(var i=0;i<10;i++) {
//遍历队列queues1
queues1[i].forEach(function (item) {
console.log(item);
})
}
</script>
</html>