您的位置:首页 > 其它

常用排序算法1--冒泡排序,选择排序,插入排序

2017-10-25 21:14 393 查看
我们先不分析排序算法的复杂度和稳定性,着重实现一遍所有的排序算法。

然后另起一篇简单的分析一下

/*Sort and search method*/
function ArrayList() {
var arr = [];

this.insert = function (value) {
arr.push(value);
}

this.toString = function () {
return arr.join(" ");
}

/*按照下标的交换辅助函数*/
function swap(index1, index2) {
var temp;
temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;
}

/*冒泡排序*/
this.bubbleSort = function () {
var len = arr.length;
for(var i=0; i<len-1; ++i) {
for(var j=0; j<len-i-1; ++j) {
if(arr[j] > arr[j+1]) {
swap(j, j+1);
}
}
}
return this;
}

/*选择排序*/
this.selectionSort = function () {
var len = arr.length;
var min_index = 0;
for(var i=0; i<len-1; ++i) {
min_index = i;
for(var j=i+1; j<len; ++j) {
if(arr[j] < arr[min_index]) {
min_index = j;
}
}
if( i != min_index) {
swap(i, min_index);
}

}

return this;
}

/*插入排序*/
this.insertionSort = function () {
var len = arr.length;
var temp;
for(var i=0; i<len-1; ++i) {
for(var j=0; j<=i; ++j) {
if(arr[j] > arr[i+1]) {
temp = arr.splice(i+1, 1);
arr.splice(j, 0, temp);
}
}
}

return this;
}
}

function test() {
var arr = [8, 7, 10, 4, 3];
var arr_list = new ArrayList();
for(var i=0; i<arr.length; ++i) {
arr_list.insert(arr[i]);
}

console.log(arr_list.toString());
//console.log(arr_list.bubbleSort().toString())
//console.log(arr_list.selectionSort().toString());
console.log(arr_list.insertionSort().toString())

}

test();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐