斐波那契数列
斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 求第n个数是多少
第一次冒泡: 2 6 7 9 5
第二次冒泡: 2 5 7 9 6
// 升序比较[JavaScript] 纯文本查看 复制代码
function bubbleSort(arr) {
var nArr = arr.slice();
var temp;
if (nArr.length > 0) {
for (var i = 0; i < nArr.length; i++){
for (var l = i; l < (nArr.length - 1); l++){
if (nArr[i] > nArr[l+1]) {
temp = nArr[i];
nArr[i] = nArr[l+1];
nArr[l+1] = temp;
}
}
}
}
return nArr;
}
快速排序算法:快速排序是处理大数据集最快的排序算法之一。它是一种分而治之的算法,通过递归的方式将数据依次分解为包含较小元素和较大元素的不同子序列。该算法不断重复这个步骤直到所有数据都是有序的。 排序说明
- 第一步: 基准值选取。基准值可以任意选取
- 第二步: 进行分区操作。按照顺序将每个元素与基准进行比较,想成两个子集(大于基准值,小于基准值)
- 第三步,递归操作。对两个子集不断重复第一步和第二步,直到所有子集只剩下一个元素为止
[JavaScript] 纯文本查看 复制代码
function qSort(arr) {
if (arr.length == 0) {
return [];
}
var left = [];
var right = [];
var pivot = arr[0];
for (var i = 1; i < arr.length; i++) { // 注意这里的起始值,因为有一个作为flag了
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return qSort(left).concat(pivot, qSort(right));
}
点击有惊喜