JavaScript 排序算法示例:冒泡排序、插入排序、快速排序
<p>排序算法有多种,这里提供三种不同的排序算法的 JS 源码示例:</p>
<h3>1. 冒泡排序</h3>
<pre><code class="language-javascript"><script>
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
<p>var arr = [64, 34, 25, 12, 22, 11, 90];
console.log('Original array: ' + arr);
var sortedArr = bubbleSort(arr);
console.log('Sorted array: ' + sortedArr);
</script></code></pre></p>
<h3>2. 插入排序</h3>
<pre><code class="language-javascript"><script>
function insertionSort(arr) {
var len = arr.length;
for (var i = 1; i < len; i++) {
var key = arr[i];
var j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
return arr;
}
<p>var arr = [64, 34, 25, 12, 22, 11, 90];
console.log('Original array: ' + arr);
var sortedArr = insertionSort(arr);
console.log('Sorted array: ' + sortedArr);
</script></code></pre></p>
<h3>3. 快速排序</h3>
<pre><code class="language-javascript"><script>
function quickSort(arr, left, right) {
if (left < right) {
var pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
return arr;
}
<p>function partition(arr, left, right) {
var pivot = arr[right];
var i = left - 1;
for (var j = left; j < right; j++) {
if (arr[j] <= pivot) {
i++;
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
var temp = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp;
return (i + 1);
}</p>
<p>var arr = [64, 34, 25, 12, 22, 11, 90];
console.log('Original array: ' + arr);
var sortedArr = quickSort(arr, 0, arr.length - 1);
console.log('Sorted array: ' + sortedArr);
</script></code></pre></p>
<p>这些代码示例展示了三种常用的排序算法,您可以根据需要选择合适的算法来对您的数据进行排序。 </p>
原文地址: https://www.cveoy.top/t/topic/mx2O 著作权归作者所有。请勿转载和采集!