前端算法

前端算法:(程序 = 算法 + 数据结构)
查重:

var arr = [1, 3, 2, 2, 3, 4, 5, 6, 8, 9, 10, 10]
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
console.log(arr[i]);
}
}
}
var obj = {};
var count1 = 0;
for (var i = 0; i < arr.length; i++) {
count1++;
if (!obj[arr[i]]) {
obj[arr[i]] = true;
} else {
console.log(arr[i]);
}
}
console.log('count1:', count1) //最优

排序算法:
冒泡排序:(比较 + 交换)

var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88]
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
console.log(arr);
var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88]
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < arr.length – j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
console.log(arr); //最优

选择排序:(使用场景:数据量较少的)

var arr = [1, 34, 23, 5, 6, 34, 77, 14, 46, 76, 88]
for (var i = 0; i < arr.length; i++) {
var max = 0;
for (var j = 0; j < arr.length - i; j++) {
if (compare(arr[j], arr[max])) {
max = j;
}
}
exchange(arr, max, arr.length - i - 1);
}
console.log(arr);

function compare(a, b) {
if (a > b) {
return true;
} else {
return false;
}
}

function exchange(arr, m, n) {
var temp = arr[m];
arr[m] = arr[n];
arr[n] = temp;
}

 

posted @ 2019-09-03 17:21  灵魂代碼  阅读(208)  评论(0编辑  收藏  举报