冒泡排序
比较相邻的两个元素,如果第一个元素比第二个元素大,则交换它俩的位置。
对每一对相邻的元素做以上同样的功能,从开始第一个比较到最后一个,在这一轮比较中,就能确定出最大的那个数,并且放在了数组的最后一个位置。
以上操作是第一轮,以后每一轮都重复执行以上的操作,但每轮后都会比之前少比较一次。(因为每轮后能固定出来一个最大值)。
** 示例 (从小到大排序) **
var arr = [5,3,1,6,7,2,8,4];
//排序的轮数遍历
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]{
//比较相邻的两个元素,并且每一轮都是从下标为0开始,所以是 j 和 j + 1 比较,比较完之后,交换两个元素的位置
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
选择排序
- 每轮从数组中的一个位置的元素依次和剩下的元素进行大小比较,小的值放在第一个位置。每轮都会固定出第一个位置。以后重复执行这个排序的规则。
** 示例 (从小到大排序) **
var arr = [5, 3, 1, 6, 7, 2, 8, 4];
//轮数的循环
for (var i = 0; i < arr.length - 1; i++) {
//每轮的次数 循环
for (var j = i + 1; j < arr.length; j++) {
//比较i 和 j 位置的元素大小,并进行位置交换
if (arr[i] >= arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);