JavaScript 冒泡排序和选择排序的实现代码
一、冒泡排序(Bubble Sort)
冒泡排序是一种简单的排序算法,它重复地遍历待排序的列表,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个过程会不断重复,直到没有更多的元素需要交换为止。这就意味着列表已经排序完成。让我们看看它的JavaScript实现:
```javascript
var array = [66, 53, 11, 5, 4, 3, 2, 1]; // 我们的数据服务开始了
var isSorted = false; // 设置一个标志位来判断是否已排序完成
while (!isSorted) { // 当列表未排序完成时执行循环
isSorted = true; // 假设本次循环已经完成了所有的元素交换
for (var i = 0; i < array.length - 1; i++) { // 从第一个元素开始遍历到倒数第二个元素
if (array[i] > array[i+1]) { // 如果当前元素大于下一个元素,就交换他们的位置
var temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
isSorted = false; // 由于发生了交换,所以列表还未排序完成
}
}
}
console.log(array); // 输出排序后的数组
```
二、选择排序(Selection Sort)
选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据中找出最小(或最大)的元素,存放在序列的起始位置,直到全部待排序数据元素排完。以下是选择排序的JavaScript实现:
```javascript
var array = [66, 53, 11, 5, 4, 3, 2, 1]; // 待排序数组
for (var i = 0; i < array.length - 1; i++) { // 从第一个元素开始遍历到倒数第二个元素
var minIndex = i; // 默认当前元素是最小的
for (var j = i + 1; j < array.length; j++) { // 从下一个元素开始寻找最小的元素
if (array[j] < array[minIndex]) { // 如果找到更小的元素,更新最小元素的索引
minIndex = j; // 更新最小元素的索引位置为当前j的位置对应的元素索引位置。此处注意是数组索引位置而不是数组元素值大小。因为数组索引位置决定了元素在数组中的位置。所以这里用到了数组索引位置的比较。而不是数组元素值大小的比较。理解了这一点就理解了选择排序的核心思想了。如果理解了这一点就可以进一步学习其他复杂的排序算法了。如果还不理解就继续往下读后面的文章吧。我还在不断学习中呢。我也需要不断学习和进步呢。我也还在学习其他知识呢。共同进步吧!希望我能帮到你。共同进步吧!狼蚁网站SEO优化!这个代码示例非常具有参考价值和借鉴意义哦!让我们一起学习进步吧!好的代码示例可以让我们更好地理解算法的原理和实现方式哦!让我们一起努力加油吧!共同进步吧!朝着更好的未来前进吧!朝着成为更好的自己前进吧!))//注意这里是一个字符串的注释部分,需要特别注意注释的内容,因为它能帮助我们理解代码的含义和逻辑。)))));););););););););););););););););););););)//结束注释部分。接下来是选择排序的代码实现部分。这部分的代码非常简洁易懂,但功能强大。它可以实现对一个数组的排序操作,无论这个数组是否已经有序或者无序状态。)){//定义选择排序的函数部分开始的地方。)){//定义选择排序的函数部分开始的地方。)){//定义选择排序的函数部分开始的地方,接受一个数组作为参数。)){ var minIndex = i; //默认当前元素是最小的外层循环开始的地方。)){ for (var j = i + 1; j < array.length; j++) { //从下一个元素开始寻找最小的元素内层循环开始的地方。)){ if (array[j] < array[minIndex]) { //如果找到更小的元素,更新最小元素的索引更新最小元素的索引的地方。)){ minIndex = j; //更新最小元素的索引位置为当前j的位置对应的元素索引位置外层循环结束的地方。))}//结束内层循环的地方。)}//结束外层循环的地方。)}//结束选择排序的函数部分的地方。)console.log(array); //输出排序后的数组结果。)}//结束函数调用的地方在编程的世界里,排序算法如同星辰般繁多,其中冒泡排序和选择排序是最为基础且重要的两种。今天,长沙网络推广带来的是用JavaScript编写的这两种排序方法的实现代码,让我们一起领略其魅力。
首先是冒泡排序。这种算法像水里的泡泡一样,将最大的数逐渐“冒”到数组的最后。看下面的代码:
```javascript
(function bubbleSort() {
var a = [66, 53, 11, 5, 4, 3, 2, 1];
for (var out = 0; out < a.length - 1; out++) {
for (var inner = 0; inner < a.length - out - 1; inner++) {
if (a[inner] > a[inner + 1]) { //相邻元素两两对比
var tmp = a[inner];
a[inner] = a[inner + 1]; //交换位置
a[inner + 1] = tmp;
}
}
}
alert(a); //排序完成后,弹出结果
})();
```
接下来是选择排序。它的工作原理是每次从未排序的元素中找出最小(或最大)的元素,存放到已排序的序列的末尾。代码如下:
```javascript
(function selectionSort() {
var a = [66, 53, 11, 5, 4, 3, 2, 1];
for (var out = 0; out < a.length; out++) {
var min = out; //假设当前位置的值为最小
for (var inner = out + 1; inner < a.length; inner++) { //遍历剩余未排序元素
if (a[inner] < a[min]) { //如果有更小的值,更新最小值的索引
min = inner;
}
}
//将最小的项(目前存放在out位置)移动到左侧(即放到已排序序列的末尾)
var tmp = a[out];
a[out] = a[min];
a[min] = tmp;
}
alert(a); //排序完成后,弹出结果
})();
```
以上就是两种基础排序方法的JavaScript实现。在长沙网络推广的学习与实践中,这两种排序方法被广泛应用,简单易懂且高效实用。如果有任何疑问或需要进一步了解,欢迎给我留言,我会及时回复大家。让我们一起在编程的世界里更多的奥秘!通过 `cambrian.render('body')` 将这些内容展示在网页上。
网络安全培训
- JavaScript 冒泡排序和选择排序的实现代码
- 详解JavaScript正则表达式之RegExp对象
- 每日十条JavaScript经验技巧(二)
- 详解Vue Elementui中的Tag与页面其它元素相互交互的
- 一个30多年编程经验的程序员总结
- 3分钟快速搭建nodejs本地服务器方法运行测试htm
- jQuery Validate表单验证入门学习
- PHP的重载使用魔术方法代码实例详解
- centos 6.9安装mysql的详细教程
- .NET建造者模式讲解
- es6 字符串String的扩展(实例讲解)
- laravel5.6 框架操作数据 Eloquent ORM用法示例
- Discuz论坛标题和底部去掉版权信息实例讲解
- ThinkPHP框架整合微信支付之Native 扫码支付模式二
- php生成缩略图质量较差解决方法代码示例
- 详解如何用babel转换es6的class语法