标签:min str 快速 for select [] 简单 ons javascrip
PS: 最近在做练习的时候经常用到一些排序算法,记录下来,便于以后参考
一、冒泡排序
具体算法描述如下:
function BubbleSort(arr) { var i = arr.length; var exchange; while (i > 0) { for (j = 0; j < i - 1; j++) { if (arr[j] > arr[j + 1]) { exchange = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = exchange; } } i--; } return arr; }
function bubbleSort3(arr3) { var low = 0; var high = arr.length - 1; //设置变量的初始值 var tmp, j; console.time(‘2.改进后冒泡排序耗时‘); while (low < high) { for (j = low; j < high; ++j) //正向冒泡,找到最大者 if (arr[j] > arr[j + 1]) { tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } --high; //修改high值, 前移一位 for (j = high; j > low; --j) //反向冒泡,找到最小者 if (arr[j] < arr[j - 1]) { tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; } ++low; //修改low值,后移一位 } console.timeEnd(‘2.改进后冒泡排序耗时‘); r
时间复杂度:
二、快速排序
具体算法描述如下:
function quickSort(arr) { if (arr.length == 0) return []; var left = new Array(); var right = new Array(); var flag = arr[0]; for (var i = 1; i < arr.length; i++) { if (arr[i] < flag) { left.push(arr[i]); } else { right.push(arr[i]); } } return quicksort(left).concat(flag, quicksort(right)); }
时间复杂度:
三、选择排序
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
function selectionSort(array) { var len = array.length, temp; for (var i = 0; i < len - 1; i++) { var min = array[i]; for (var j = i + 1; j < len; j++) { if (array[j] < min) { temp = min; min = array[j]; array[j] = temp; } } array[i] = min; } return array; }
四、sort排序的应用
实现功能:根据对象数组中的某个属性排序。
例:
var data = [ ["赵", 60], ["王", 50], ]; function sortAqiData(data) { return data.sort(function(a, b) { return a[1] - b[1]; }) } newData = sortAqiData(data);
五、filter矢代
功能: 根据数组对象中某个属性筛选数组。
例
var data= [["赵",60]["王",50]]; //选出年龄大于等于六十的人 data = data.filter(function(item) { return item[1] >= 60; });
标签:min str 快速 for select [] 简单 ons javascrip
原文地址:http://www.cnblogs.com/it-xiaojun/p/6058655.html