目录
?
1、Sort排序
2、冒泡排序
3、选择排序
4、插入排序
1、Sort排序
排序描述:能够根据提供的排序规则,对数组元素进行排序
var arr = [9,88,67,24,39,74,28];
//sort
function fun(a,b){
return a-b;//从小到大
//从大到小 b-a
}
console.log(arr.sort(fun));//[9, 24, 28, 39, 67, 74, 88]
2、冒泡排序
工作原理:将数组中的相邻两个元素进行比较,将较大(较小)的数值通过两两相比,当前一个数比后一个大,就交换他们的位置
var arr = [9,88,67,24,39,74,28];
//冒泡排序
function bubbleSort(arr){
for (var i=0;i<arr.length-1;i++) {
//每一轮要比较的次数
for (var j=0;j<arr.length-1-i;j++) {
//相邻元素两两对比
if(arr[j] > arr[j+1]){
//元素交换
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
console.log(bubbleSort(arr));//[9, 24, 28, 39, 67, 74, 88]
3、选择排序
?工作原理:在未排序序列中找到最小(最大)元素,存放到排序序列的起始位置,然后,再从剩下的未排序元素中继续找最小(最大)元素,然后放到已排序序列的末尾。
var arr = [9,88,67,24,39,74,28];
//选择排序
function selectSort(arr){
for (var i=0;i<arr.length-1;i++) {
for (var j=i+1;j<arr.length;j++) {
if(arr[i] > arr[j]){
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
console.log(selectSort(arr));[9, 24, 28, 39, 67, 74, 88]
4、插入排序
工作原理:从第二个元素起,当前元素与其他元素进行对比,如果当前元素小于其他元素,其他元素后移,直到当前元素大于或等于其他元素,当前元素插入到其他元素的索引位置后;如果当前元素大于其他元素,不发生改变
var arr = [12,4,52,2,14,28,7];
//插入排序
function insertSort(arr){
for (var i = 1; i < arr.length; i++) {
var j = i - 1;
while(j >= 0 && arr[j] > arr[i]){
arr[j+1] = arr[j];
j--;
};
arr[j+1] = arr[i];
}
return arr;
}
console.log(insertSort(arr));//[2, 4, 7, 12, 14, 28, 52]
|