冒泡排序
冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换他们。
var bubbleSort = function() {
var length = array.length;
for (var i=0; i<length; i++){
for(var j=0; j<length-1; j++){
if(array[j] > array[j+1]){
swap(array, j, j+1);
}
}
}
}
var swap = function(array, index1, index2) {
var aux = array[index1];
array[index1] = array[index2];
array[index2] = aux;
}
//es6的写法:[array[index1], array[index2]] = [array[index2], array[index1]];
//改进的冒泡排序
var modifiedBubbleSort = function() {
var length = array.length;
for (var i=0; i<length; i++) {
for (var j = 0; j<length-1-i; j++) {
if(array[j] > array[j+1]) {
swap(j, j+1);
}
}
}
}
选择排序
var selectionSort = function() {
var length = array.length,
indexMin;
for (var i=0; i<length-1; i++) {
indexMin = i;
for (var j=i; j<length; j++) {
if(array[indexMin]>array[j]){
indexMin = j;
}
}
if (i !== indexMin) {
swap(i, indexMin);
}
}
}
插入排序
var insertionSort = function() {
var length = array.length,
j,
temp;
for (var i=1; i<lenght; i++) {
j=i;
temp = array[i];
while(j>0 && array[j-1] > temp) {
array[j] = array[j-1];
j--;
}
array[j] = temp;
}
}