选择排序、冒泡排序、快速排序、桶排序

Abina ·
更新时间:2024-09-20
· 828 次阅读

选择排序

假设一个最小值,选出最小值,互换位置…

假设一个最小值以及最小值的下标 找出最小值以及最小值的下标 假设的最小值与找出的最小值换位 function selectSort(arr){ for (var n = 0; n < arr.length-1; n++){ // 1.假设一个最小值以及最小值的下标: var min = arr[n]; var minIndex = n; // 2.找出最小值以及最小值的下标: for (var i = n+1; i arr[i]){ min = arr[i]; minIndex = i; } } // 3.假设的最小值与找出的最小值换位: var tmp = arr[n]; arr[n] = min; arr[minIndex] = tmp; } return arr; } 冒泡排序

相邻两个数进行比较,互换位置…

function bubbleSort(arr){ for (var n = 0; n < arr.length-1; n++){ //比较轮数 for (var i = 0; i arr[i+1]) {//前面的大于后面的:换位 var tmp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = tmp; } } } return arr; } 快速排序

找中点,分左右,递归运算…

function quickSort(arr){ // 递归出口 if (arr.length <= 1) return arr; // 找中点(中点的位置的下标及值) var midIndex = parseInt( arr.length/2 ); var mid = arr[midIndex]; // 分左右 var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] === mid) { continue; //跳过本次循环 } if (arr[i] < mid) {//与中点比较分左右 left.push(arr[i]); } else { right.push(arr[i]); } } // 递归运算(左中右三个数组合并) return quickSort(left).concat([mid],quickSort(right)); } 桶排序

创建桶,把数据放到桶里(对应下标的位置),遍历桶取出有数据的桶(的下标)…

function bucketSort(arr){ var bucket = []; // 1. 创建桶 for (var i = 0; i string } return arr; }
作者:wstomc



选择排序 选择 桶排序 冒泡排序 快速排序 排序

需要 登录 后方可回复, 如果你还没有账号请 注册新账号