JavaScript排序

91 阅读1分钟

JS选择排序

原理 首先从原始数组中找到最小的元素,并把该元素放在数组的最前面,然后再从剩下的元素中寻找最小的元素,放在之前最小元素的后面,知道排序完毕。

var arr1 = [2,33,11,23,56,72,78,24,14,58];
    function selectionSort(arr){//完成从小到大排序
        var len =arr.length;//数组长度
        var minIndex, temp;//minIndex最小值对应的下标,临时变量
        for(var i=0; i < len-1; i++){
            minIndex=i;
            for(var j=i+1; j<len;j++){
                if(arr[j] < arr[minIndex]){//寻找最小的数
                    minIndex =j;
                }
            }
            temp=arr[i];//把大的数存到temp中
            arr[i]=arr[minIndex];//
            arr[minIndex]=temp;
        }
        return arr;
    }
    document.write(selectionSort(arr1))

冒泡排序

冒泡排序:数组中有n个数,比较每相邻的两个数,如果前者大于后者,就把两个数交换位置,第一轮就可以选出一个最大的数放在最后面;那么经过n-1(数组的 length-1)轮,就完成了所有数的排序。”

function BubbleSort(array) {
    var length = array.length;
    for (var i = length - 1; i > 0; i--) { //用于缩小范围
	for (var j = 0; j < i; j++) { //在范围内进行冒泡,在此范围内最大的一个将冒到最后面
            if (array[j] > array[j+1]) { 
		var temp = array[j];
		array[j] = array[j+1];
		array[j+1] = temp;
            }
	}
    }
    return array;
}				 
    var arr = [10,9,8,7,7,6,5,11,3];
    var result = BubbleSort(arr);
    console.log(result);