冒泡排序
function bubbleSort(arr){
for(var i = 0; i< arr.length; i++){
for(var j = 0;j < arr.length - i; j++){
if(arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
时间复杂度:n^2
总结:冒泡排序,升序一组n个元素数组时,是通过相邻元素进行对比大小,若前大后小则进行交换,直至遍历这组数组所有元素n,遍历完毕时,数组尾部元素便是最大元素。同理,依次对n-i(i =1,...,n-1)的数组元素进行相邻比较遍历,依次得到每次遍历的最大元素,这些元素由将从小到大进行排序。
选择排序
function selectionSort(arr){
var temp, minIndex;
for(var i = 0; i < arr.length - 1; i++){
minIndex = i;
for(var j = i+1; j < arr.length; j++){
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr
}
时间复杂度: n^2
总结:数组升序,遍历数组并设为最小值时,进行遍历数组,将最小值与数组元素进行对比,选出最小的元素,依次在数组中左往右进行排序。
插入排序
function insertionSort(arr){
for(var i = 1; i < arr.length; i++){
var preindex = i -1;
var current = arr[i];
while(current < arr[preindex] && preindex >= 0){
arr[preindex + 1] = arr[preindex];
preindex--;
}
arr[preindex + 1] = current;
}
return arr
}
时间复杂度:n^(1-2)
总结:数组升序,从第二个元素开始遍历数组,每次遍历依次将元素与前面所有元素进行对比,若前面元素大当前遍历元素小,则将该元素向后赋值移一位,若前面元素小当前遍历元素大,则将当前遍历元素值赋给前面元素的后一位数组元素。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。