当前位置: 首页 > news >正文

JavaScript中数组的排序方法:1.冒泡排序 2.选择排序

 
	//1.选择排序:
	    //从小到大排序:通过比较首先选出最小的数放在第一个位置上,然后在其余的数中选出次小数放在第二个位置上,依此类推,直到所有的数成为有序序列。
	  
		var arr2=[19, 8, 27, 6, 15, 4];
		 for(var i=0;i<arr2.length-1;i++){
		 	for(var j=i+1;j<arr2.length;j++){
		 		if(arr2[j]<arr2[i]){   
		 			var temp=arr2[j];
		 			arr2[j]=arr2[i];
		 			arr2[i]=temp;
		 		}
		 	}
		 }
		 console.log(arr2);//4,6,8,15,19,27
	/*
		 * //第一轮:第一个数字和后面的每一位进行比较,选择出最小的一个放在第一位上。
		  [8, 19, 27, 6, 15, 4]    //8和19比较选择出8放在第一位
		  [8, 19, 27, 6, 15, 4]    //8和27比较选择出8放在第一位
		  [6, 19, 27, 8, 15, 4]    //8和6比较选择出6放在第一位
		  [6, 19, 27, 8, 15, 4]    //6和15比较选择出6放在第一位
		  [4, 19, 27, 8, 15, 6]    //6和4比较选择出4放在第一位
		  
		 //第二轮:第二个数字和后面的每一位进行比较,选择出最小的一个放在第二位上。
		  [4, 19, 27, 8, 15, 6]    //19和27比较选择出19放在第二位
		  [4, 8, 27, 19, 15, 6]    //19和8比较选择出8放在第二位
		  [4, 8, 27, 19, 15, 6]    //8和15比较选择出8放在第二位
		  [4, 6, 27, 19, 15, 8]    //8和6比较选择出6放在第二位
		 
		 * 
	    //第三轮:第三个数字和后面的每一位进行比较,选择出最小的一个放在第三位上。
		[4, 6, 19, 27, 15, 8]    //27和19比较选择出19放在第三位
		[4, 6, 15, 27, 19, 8]    //19和15比较选择出15放在第三位
		[4, 6, 8, 27, 15, 19]    //15和8比较选择出8放在第三位
		
		
		//第四轮:第四个数字和后面的每一位进行比较,选择出最小的一个放在第四位上。

		[4, 6, 8, 15, 27, 19]    //27和15比较选择出15放在第四位
		[4, 6, 8, 15, 27, 19]    //15和19比较选择出15放在第四位
		
		
		// 第五轮:第五个数字和后面的每一位进行比较,选择出最小的一个放在第五位上。
		 
		[4, 6, 8, 15,19, 27]    //27和19比较选择出19放在第五位

		 */

  

//2.冒泡排序:  从头到尾,比较相邻的两个元素的大小,如果符合交换条件,交换两个元素的位置。每一轮比较中,都会选出一个最大的数,放在正确的位置
		var arr = [19, 8, 27, 6, 15, 4];
		for(var i=0;i<arr.length;i++){
			for(var j=0;j<arr.length-i;j++){   //因为每一轮比较都会选择出最大的一位放在最后,下次再次比较时不用和已经选择出的进行比较,所以才会有  j<arr.length-i ;
				if(arr[j]>arr[j+1]){           //如果前面的数比后面的数大,定义一个临时变量来交换两个数的位置。
				 var temp=arr[j];        
				  arr[j]=arr[j+1];
				  arr[j+1]=temp;
				}
			}
		}
		console.log(arr);// 4,6,8,15,19,27
		//从小到大排序:
		/*
		 * //第一轮:
		  [8, 19, 27, 6, 15, 4]
		  [8, 19, 27, 6, 15, 4]
		  [8, 19, 6, 27, 15, 4]
		  [8, 19, 6, 15, 27, 4]
		  [8, 19, 6, 15, 4, 27]
		  // 第一轮选出了最大的元素27放在了数组的最后一位
		  
		 //第二轮:
		 [8, 19, 6, 15, 4, 27]
		 [8, 6, 19, 15, 4, 27]
		 [8, 6, 15, 19, 4, 27]
		 [8, 6, 15, 4, 19, 27]
		 
		 //第二轮选出了最大的元素19放在了数组的倒数第二位
		 * 
	    //第三轮:
		[6, 8, 15, 4, 19, 27]
		[6, 8, 15, 4, 19, 27]
		[6, 8, 4, 15, 19, 27]
		
		//第三轮选出了最大的元素15放在了数组的倒数第三位
		 
		//第四轮:

		[6, 8, 4, 15, 19, 27]
		[6, 4, 8, 15, 19, 27]
		
		// 第四轮选出了最大的元素8放在了数组的倒数第四位
		 
		// 第五轮:
		 
		[4, 6, 8, 15, 19, 27]
		
		// 第五轮选出了最大的元素6放在了数组的第二位
		 */

  

  

转载于:https://www.cnblogs.com/hgdzjp/p/9598201.html

相关文章:

  • js计算页面加载时间
  • Solium代码测试框架
  • 迎接第五次工业革命浪潮,不当纳米知识文盲
  • 12-单表查询
  • Microsoft Component Designer 设计组件一例
  • 百度云高速下载Pandownload
  • CF卡格式化XPE启动盘
  • BZOJ 3224: Tyvj 1728 普通平衡树 or 洛谷 P3369 【模板】普通平衡树-Splay树模板题
  • Linux 抓取网页实例(shell+awk)
  • 计算机网络--TCP三次握手和四次挥手
  • 纳米技术是云计算的大救星
  • set集合的常用方法
  • lua和测试(一)
  • Qt 事件处理机制 (上篇)
  • 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • gops —— Go 程序诊断分析工具
  • IP路由与转发
  • java中的hashCode
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 包装类对象
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 飞驰在Mesos的涡轮引擎上
  • 基于组件的设计工作流与界面抽象
  • 聚类分析——Kmeans
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 日剧·日综资源集合(建议收藏)
  • 试着探索高并发下的系统架构面貌
  • 微服务框架lagom
  • 学习HTTP相关知识笔记
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 移动端解决方案学习记录
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • # Apache SeaTunnel 究竟是什么?
  • $.ajax中的eval及dataType
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (day6) 319. 灯泡开关
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (接口自动化)Python3操作MySQL数据库
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三)Honghu Cloud云架构一定时调度平台
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)【Hibernate总结系列】使用举例
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!