数字类型:
//冒泡排序 const arr = [2, 4, 5, 6, 1, 3] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置 //如果需要从大到小排列,将if里边改为arr[j] < arr[j + 1] if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果:
字符串类型:
字符串类型比较的为字符串的ascii码,并不是完全按照字符串长度进行排序
//冒泡排序 const arr = ['yellow', 'blue', 'purple', 'red', 'orange'] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置 //如果需要从大到小排列,将if里边改为arr[j] < arr[j + 1] if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果:
混合(字符串+数字)
//冒泡排序 const arr = ['qwer','qwe', 'qwert', 3, 1, 2] //外层循环长度减一次 for (let i = 0; i <= arr.length - 1; i++) { //内层循环 最大次数等于外层循环数组长度-1 for (let j = 0; j <= arr.length - i - 1; j++) { // 判断条件 如果数组大于这个数组加一 那么按照顺序替换到指定位置 //j + 1 如果是最大的j,那么到最大的j+1肯定也是最大,所以这个+1也是最大的, //因为他们都加一,并不影响结果,但如果加2或者更多,那么有可能其中至少两个就会变换位置 //如果需要从大到小排列,将if里边改为arr[j] < arr[j + 1] if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } console.log(arr);
运行结果:
函数封装
//函数封装 function getSort(arr) { for (let i = 0; i < arr.length - 1; i++) { for (let j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { let temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } return arr; } let num = getSort([3, 5, 6, 2, 1, 4]) console.log(num);
运行结果:
万水千山总是情,点个关注行不行