常用排序算法之一:三种常用的冒泡排序的改进算法。
来源:互联网 发布:sql select查询语句 编辑:程序博客网 时间:2024/05/18 20:33
冒泡排序效率比较低,进行的三种算法改进。
三种改进的冒泡排序,一次递增的改进。把前端和后端已经顺序对的数据直接忽略。
第一种方式:按照原先的冒泡排序来说,如果其中有一次循环没有进行值的交换,那么就已经排序完毕了。
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<title>冒泡排序改进方案1</title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,432,987,98,432,433,37,83];
var flag = true; // 设置的标志,用来标志本次循环是否有值交换
while(flag){
flag = false;
for(var i=0;i<arr.length-1;i++){
if(arr[i]<arr[i+1]){
var temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
flag = true;
}
}
}
alert(arr);
</script>
</html>
第二中方式:用flag记录后面数据中最后一次交换值得位置。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,432,987,98,432,433,37,83];
var flag = arr.length;; // 设置标志位,用来记录最后一次交换值的下标。如果下标不等于arr。length-1那就不用比较之后的数据了
var k ;
while(flag){
k = flag;
flag = 0;
for(var i=0;i<k-1;i++){
if(arr[i]<arr[i+1]){
var temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
flag=i;
}
}
}
alert(arr);
</script>
</html>
第三种方式:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,432,987,98,432,433,37,83];
var flag = arr.length; // 设置标志位,用来记录最后一次交换值的下标。如果下标不等于arr。length-1那就不用比较之后的数据了
var flagPre = 0; // 设置标志位,用来记录第一次交换值的下标,其中用flagF来表示是不是第一次交换值。
var flagF =true;
var k ;
while(flag){
k = flag;
flag = 0;
for(var i=flagPre;i<k-1;i++){
if(arr[i]<arr[i+1]){
var temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
flag=i;
if(flagF==true){
flagPre=i;
flagF=false;
}
}
}
}
alert(arr);
</script>
</html>
- 常用排序算法之一:三种常用的冒泡排序的改进算法。
- 常用算法总结之排序(三)----改进冒泡
- 常用排序算法——鸡尾酒排序(改进的冒泡排序)
- 冒泡排序的改进算法
- 改进的冒泡排序算法
- 改进的冒泡排序算法
- 改进的冒泡排序算法
- 改进的冒泡排序算法
- 冒泡排序算法的改进
- 冒泡排序算法的改进
- 改进的冒泡排序算法
- 排序算法--冒泡排序的首尾改进
- 经典算法系列之一 冒泡排序的三种实现
- 基础算法之一 冒泡排序的三种实现
- 【算法】常用的排序算法之冒泡排序
- 常用算法---冒泡排序
- 排序常用的三种算法
- 常用排序算法之一
- JVM和DVM
- redis集群安装提高
- JAVA BigDecimal 小数点处理
- 分享一个用DHTML写的一个js简易轮播图
- codis 二级分类 二级索引
- 常用排序算法之一:三种常用的冒泡排序的改进算法。
- Android音量控制曲线
- HTTP协议——学完之后的总结(下)
- struts2常用几个配置文件
- 网络相关校验和计算(通用)
- HTTP详解Headers
- JS原型、原型链
- Core Graphics 框架学习笔记
- Download file from Web-Task1