为了给大家更好的理解,这里先介绍一下这三种排序算法的基本思想:
-
冒泡排序:依次比较相邻两个元素的大小,将较大的元素往后移动,每一轮比较都可以确定一个最大的元素,因此需要进行N-1轮。
-
快速排序:选定一个中心点,将小于这个中心点的元素排在左边,大于这个中心点的元素排在右边,然后分别对左右两边的元素重复这个操作。
-
插入排序:将数组按升序排列,一次将每个元素插入到已经排好序的子数组中的适当位置。
现在我们分别来看一下这三种排序算法的具体实现方式的示例:
冒泡排序算法示例
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;
}
我们可以通过调用bubbleSort
函数来使用这个算法:
var arr = [3, 2, 1, 5, 4];
var sortedArr = bubbleSort(arr);
console.log(sortedArr); // 输出 [1,2,3,4,5]
在这个例子中,我们将数组[3,2,1,5,4]通过bubbleSort
函数进行排序,最终得到了[1,2,3,4,5]这样一个已排好序的数组。
快速排序算法示例
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
我们可以通过调用quickSort
函数来使用这个算法:
var arr = [3, 2, 1, 5, 4];
var sortedArr = quickSort(arr);
console.log(sortedArr); // 输出 [1,2,3,4,5]
在这个例子中,我们将数组[3,2,1,5,4]通过quickSort
函数进行排序,最终得到了[1,2,3,4,5]这样一个已排好序的数组。
插入排序算法示例
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--;
}
arr[j + 1] = key;
}
return arr;
}
我们可以通过调用insertionSort
函数来使用这个算法:
var arr = [3, 2, 1, 5, 4];
var sortedArr = insertionSort(arr);
console.log(sortedArr); // 输出 [1,2,3,4,5]
在这个例子中,我们将数组[3,2,1,5,4]通过insertionSort
函数进行排序,最终得到了[1,2,3,4,5]这样一个已排好序的数组。
以上三个排序算法都是常用的基本排序算法,可以有效帮助开发者解决排序问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现的冒泡排序,快速排序,插入排序算法示例 - Python技术站