1. 冒泡排序(体育委员两两摸头法)
- 实现基本思路:冒泡排序是经过 n-1 趟子排序完成的,第i趟子排序从第1个数至第 n-i 个数,若第 i 个数比后一个数大(则升序,小则降序)则交换两数。
伪代码流程图
function bubble(arr) {
for(var i = 0; i < arr.length; i++){ //比较多少轮,从第一轮开始
for(var j = 0; j < arr.length - 1 - i; j++){ //每一次又比较多少次
if(arr[i] > arr[i+1]){
var temp;
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
return arr;
}
var a = [1,4,2,5,9];
bubble(a);
//[1, 2, 4, 5, 9]
2. 选择排序(体育老师一指禅法)
- 找到数组最小的元素,将它和数组红第一个元素交换位置,接下来,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置,往复如此,直到将整个数组排序。基本点就是不断地选择剩余元素之中的最小者。
体伪代码流程图
function selection(arr) {
for(var i = 0; i < arr.length -1; i++) { //这里之所以 arr.length -1,是因为到最后两个元素,交换位置,整个数组就已经排好序了
var minNum = arr[i];
for(var j = i + 1; j < arr.length; j++){ // j=i+1是把与自己比较的情况给省略掉
if(arr[j] < minNum){
var temp;
temp = minNum;
minNum = arr[j]; //交换两个值
arr[j] = temp;
}
}
arr[i] = minNum;
}
return arr;
}
var a = [1,4,2,5,9];
selection(a);
//[1, 2, 4, 5, 9]
网友评论