【数组】—冒泡排序&&选择排序(转载自我的老师 Alley-巷子)
时间:2019-08-31
本文章向大家介绍【数组】—冒泡排序&&选择排序(转载自我的老师 Alley-巷子),主要包括【数组】—冒泡排序&&选择排序(转载自我的老师 Alley-巷子)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
什么是冒泡排序:从头到尾比较相邻的两个数的大小,如果符合条件则进行比较
【注】:从小到大进行排序
假设有一个数组 var arr = [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那么按照冒泡排序的规则我们可以进行演变和尝试
第一次比较
9 8 7 6 5 4
8 9 7 6 5 4
8 7 9 6 5 4
8 7 6 9 5 4
8 7 6 5 9 4
8 7 6 5 4 9
通过第一轮的比较我们将最大的数字9比较了出来,但是这并不是我们想要的最终结果,所以我们还需要继续比较
第二次比较
8 7 6 5 4
7 8 6 5 4
7 6 8 5 4
7 6 5 8 4
7 6 5 4 8
通过第二轮比较我们将最大数字8比较了出来
第三次比较
7 6 5 4
6 7 5 4
6 5 7 4
6 5 4 7
通过比较我们将最大数字7比较了出来
第四次比较
6 5 4
5 6 4
5 4 6
通过比较我们将最大数字6比较了出来
第五次比较
5 4
4 5
通过比较我们将数组5比较了出来
【注】:通过以上演变我们得出一个结论也就是说比较的次数等于数组的长度减一; 每一次的比较内部需要两两比较的次数是 数组的长度-1-i
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
/*
什么是选择排序
类似于打擂台一样,谁赢了谁就站在第一位
假设有一个数组 var arr = [9,8,7,6,5]; 我们想要进行这个数组进行排序那么按照选择排序的规则我们可以进行演变和尝试
第一轮比较
9 8 7 6 5
8 9 7 6 5
7 9 8 6 5
6 9 8 7 5
5 9 8 7 6
第一轮比较出最小的数放在了第一位
第二轮比较
9 8 7 6
8 9 7 6
7 9 8 6
6 9 8 7
第二轮比较出最小的数放在了第一位
第三轮比较
9 8 7
8 9 7
7 9 8
第三轮比较出最小的数放在了第一位
第四轮比较
9 8
8 9
第四轮比较完毕
【总结】:首先看比较次数的规律:数组的长度-1,每轮比较的规律:每次比较的位置都是当前数字的位置+1进行的比较
*/
var temp;
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
原文地址:https://www.cnblogs.com/mp-0518/p/11440529.html
- 使用Linux命令发送邮件(r2笔记94天)
- 如何用python轻松破解wifi密码( 源码 )
- 海量数据迁移之通过shell估算数据量 (r2笔记93天)
- 使用sklearn进行数据挖掘
- 批量转换分区表为普通表(r2笔记92天)
- 使用sklearn做特征工程
- 【专业技术】CSS作用及用法
- 生产环境sql语句调优实战第六篇(r2笔记91天)
- 关于分区表的move操作(r2笔记90天)
- 简单分析oracle的数据存储(r2笔记89天)
- 机器学习线性分类算法:感知器原理
- 通过shell脚本来查看Undo中资源消耗高的sql(r2笔记88天)
- 关于分页查询的优化思路(r3笔记第7天)
- 用机器学习方法对影评与观影者情感判定
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- K8S 生态周报| NGINX Ingress Controller又添新特性
- 网络安全实验室平台(脚本关)
- shell 多线程及线程数控制实现
- CTF考点总结-sql注入篇
- dotnet OpenXML 为什么资源使用 Relationship 引用
- k8s部署Kafka集群
- 彻底搞懂 etcd 系列文章(六):etcd 核心 API v3
- Open3d学习计划—7(RGBD测程法)
- 一次信息泄露引发的越权
- MySQL 调优 | OPTIMIZER_TRACE 详解
- 这次被坑惨了,MySQL的隐式转换导致了一个线上BUG
- iOS开发之UIMenu
- mysql必会技能-基本操作
- 移动端跨平台技术之下的变与不变
- java-JDBC操作Mysql