JS中数组,快速和冒泡排序

本文介绍了如何使用冒泡排序和快速排序算法对整数数组[29,45,51,68,72,97]和[2,6,1,4,8,7,9,3,5]进行排序,详细讲解了冒泡排序的比较与交换过程以及快速排序的分区与递归策略。
摘要由CSDN通过智能技术生成

 将数组 arr 通过两种排序方法,进行排序为 123456789.

 

1.什么是冒泡排序

答: 是一种计算机科学领域的常用的较简单的排序算法,冒泡排序的基本原理是两两比较待排序数据的大小 ,当两个数据的次序不满足顺序条件时即进行交换,反之,则保持不变,这样每次最小(或最大)的结点就像气泡一样浮到序列的最前位置。

<script type="text/javascript">
			// 编写方法,实现冒泡
			    var arr = [29,45,51,68,72,97];
			    //外层循环,控制趟数,每一次找到一个最大值
			    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]) {
			                var temp = arr[j];
			                arr[j] = arr[j + 1];
			                arr[j + 1] = temp;
			            }
			        }
			    }
				console.log(arr);
		</script>

2.什么是快速排序

答:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都小于或者等于另外一部分的所有数据,然后再按照此方法对这两部分数据分别进行快速排序,整个排序的过程可以递归进行,以此达到整个数据变成有序序列。

	<script>
			function sort(arr, x, y) {
				// 判断传入的值是否为数组的起点索引,与终点索引
				if (x < y) {
					// 声明一个指针分别指向传入的数组的首位与末位
					var i = x;
					var j = y;
					// 声明一个基数
					var contrast = arr[x];
					while (i < j) {
						while (arr[j] > contrast && i < j) {
							j--;
						}
						arr[i] = arr[j];
						while (arr[i] < contrast && i < j) {
							i++;
						}
						arr[j] = arr[i];
					}
					//让数组的基数放在最中间
					arr[j] = contrast;
					// 将基数左边快排
					sort(arr, x, i - 1);
					// 将基数右边快排
					sort(arr, i + 1, y);
				}else{
					return
				}
			}
			var arr = [2, 6, 1, 4, 8, 7, 9, 3,5];
			// 数组最后一个的下标值
			var Length = arr.length-1;
			// 调用函数将数组传入进去,同时传入第一个与最后一个值
			sort(arr, 0, Length);
			console.log(arr);
		</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值