1.冒泡排序
let example=[20,50,100,87,60,59];
function fn(arr){
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
let temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
fn(example);
console.log(example);
//双重for循环...
好理解的写法
function bubbleSort (arr) {
let len = arr.length;
//要进行多少轮排序
for(let i = 0; i < len-1; i++) {
//每一轮,相邻两位进行比较,大的放后面
for(let j = 0; j < len-1-i ; j++) {
if( arr[j] > arr[j+1] ){
swap(arr,j,j+1);
}
}
}
}
function swap(arr,i,j){
let tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
//当然,也没简略到哪里去,主要觉得这样子写比较舒服
2.选择排序
第一次从待排序的[数据元素]中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择[排序]是不稳定的排序方法。
代码实现:
function selectionSort(arr){
let len = arr.length;
let minIndex;
for(let i = 0; i < len ; i++) {
minIndex = i;
for(let j = i+1; j < len ; j++) {
if( arr[j] < arr[minIndex] ){
minIndex = j;
}
}
swap(arr,i,minIndex);
}
}
function swap(arr,i,j){
let tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
慢慢学习,慢慢积累,各位大佬也别喷我,毕竟新手