标签:数组 一个 条件 fun 死循环 quicksort func i++ pre
刚好今晚看了js的冒泡排序跟快速排序,趁着还没忘记先记下来。
1. 冒泡排序:遍历数组,每个元素都与后一个元素比较,如果大于下一个元素,则两个元素位置调换。否则的话当前元素再与下下个元素比较,一直到 跟后面的元素都比较完。这个是升序的排序,降序则相反。
1 var arr = [1,23,4,12,32,455,122,3,43,13]; 2 3 function bubbleSort(arr) { 4 for (let i = 0; i < arr.length - 1; i++) { 5 for(let j = i + 1; j < arr.length; j++) { 6 if (arr[i] > arr[j]) { 7 let maxVal = arr[i]; 8 arr[i] = arr[j]; 9 arr[j] = maxVal; 10 } 11 } 12 } 13 return arr; 14 } 15 console.log(‘bubble sort: ‘, bubbleSort(arr));
2. 快速排序:是对冒泡排序的一种改进。
1 var arr = [1,23,4,12,32,455,122,3,43,13]; 2 function quickSort(arr) { 3 if (arr.length <= 1) { 4 // 注意加这个条件,不然死循环 5 return arr; 6 } 7 var reference = arr[0]; 8 var leftList = []; 9 var rightList = []; 10 arr.forEach(item => { 11 if (item > reference) { 12 rightList.push(item); 13 } else if (item < reference) { 14 leftList.push(item); 15 } 16 }) 17 18 return quickSort(leftList).concat(reference, quickSort(rightList)); 19 } 20 console.log(‘quick sort: ‘ , quickSort(arr))
标签:数组 一个 条件 fun 死循环 quicksort func i++ pre
原文地址:https://www.cnblogs.com/l-c-blog/p/10582185.html