排序和查找、链表、二叉树、队列、堆栈、字符串以及数组
排序:
1、冒泡排序:
原理: 比较相邻的元素, 如果第一个比第二个大,就交换两个;
对每一个相邻的元素作同样的工作,从开始第一对到结尾最后一对,这样在最后的元素应该是最大的数。
针对所有的元素重复这个比较,除最后一个。
代码实现:
var arr = [5,4,3,2,1,6,7,8,9,10]
function bubbleSort(arr) {
var length = arr.length;
for (var i = 0; i < length - 1; i++) { // length-1最后一个已经是在前一个进行排序
for (var j = 0; j < length- 1 - i; j++) { // length- 1 - i (之前拍好顺序的则无需再排)
if (arr[j] > arr[j+1]) { // 相邻元素两两对比 (如果降序 判断条件则是arr[j] < arr[j+1])
var temp = arr[j+1]; // 元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
bubbleSort(arr) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 明白原理之后 可以学习js原生的sort()API