JavaScript算法学习之冒泡排序和选择排序
冒泡排序和选择排序是常见的两种排序算法。在本文中,我们将详细讲解这两种排序算法,并提供代码示例供读者参考。
冒泡排序
冒泡排序是一种简单的排序算法,它通过比较相邻两个元素的大小,依次将最大的元素冒泡到数组的末尾。
以下是冒泡排序的代码示例:
function bubbleSort(array) {
const len = array.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - i - 1; j++) {
if (array[j] > array[j + 1]) {
[array[j], array[j + 1]] = [array[j + 1], array[j]];
}
}
}
return array;
}
const arr = [3, 5, 1, 4, 2];
console.log(bubbleSort(arr)); // [1, 2, 3, 4, 5]
在上述代码中,我们使用了两个循环来实现冒泡排序。外层循环执行 n - 1 次(其中 n 为数组的长度),每次循环都会确定一个最大值。内层循环用来比较相邻两个元素的大小,如果前面的元素比后面的元素大,则交换它们的位置。
选择排序
选择排序是一种简单的排序算法,它每次从数组中选择一个最小的元素,并将其与数组的第一个元素交换位置。然后,再从剩余的元素中选择一个最小的元素,并将它与数组的第二个元素交换位置,以此类推。
以下是选择排序的代码示例:
function selectionSort(array) {
const len = array.length;
let minIndex;
for (let i = 0; i < len - 1; i++) {
minIndex = i;
for (let j = i + 1; j < len; j++) {
if (array[minIndex] > array[j]) {
minIndex = j;
}
}
[array[i], array[minIndex]] = [array[minIndex], array[i]];
}
return array;
}
const arr = [3, 5, 1, 4, 2];
console.log(selectionSort(arr)); // [1, 2, 3, 4, 5]
在上述代码中,我们使用了两个循环来实现选择排序。外层循环执行 n - 1 次(其中 n 为数组的长度),每次循环都会确定一个最小值的索引位置。内层循环用来寻找最小值的索引位置,然后将最小值与当前位置进行交换。
以上就是冒泡排序和选择排序的详细讲解和代码示例。大家可以根据这些示例进行练习,并深入研究算法的实现方式和优化方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript算法学习之冒泡排序和选择排序 - Python技术站