输入任意数量,进行正向、反向排序

2025-12-09编程代码208700

输入任意数量,进行正向、反向排序

输入任意数量,进行正向、反向排序

  1. 方法一:冒泡排序法;
    (1) 原理:
    思路:
    a)比较两个相邻的元素,如果后一个比前一个大,则交换位置
    b) 第一轮的时候最后一个元素应该是最大的一个
    c) 按照第一步的方法进行两个相邻的元素的比较,由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/**
			 * 输入变量,判断大小冒泡
			 * for循环2次,第一次找出最大值,第二次从小到大排序,
			 */
			// 比如数组元素4个,长度即为4,但索引为3.
			var flag = false;
			var j;
			var temp;
			var bong=false;
			function com(arr) {
				for (i = 0; i < arr.length - 1; i++) {
					for (j = 0; i < arr.length - 1 - j; j++) {
						if(bong){
							bubbleSort1(arr);
						}
						else{
							// 顺序
							bubbleSort(arr);
						}
					}
					//如果原本的值就是有序的,则不必进入if判断
					if (!flag) {
						// alert("hello");
						break;
					}

				}
				return arr;
			}

			function bubbleSort1(arr) {
				if (arr[j] < arr[j + 1]) {
					flag = true;
					var temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}

			}
			

			function bubbleSort(arr) {

				if (arr[j] > arr[j + 1]) {
					flag = true;
					var temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}

			//prompt()函数返回值为String类型,用+隐式转为Number
			var numArr = [];
			var num = +prompt("请输入需要比较大小的数量:");
			for (var i = 0; i < num; i++) {
				numArr[i] = prompt("请输入第" + (i + 1) + "个数:");
			}
			com(numArr);
			alert("从小到大的顺序为:"+numArr.join(" "));
			bong=true;
			com(numArr);
			alert("从大到小的顺序为:"+numArr.join(" "));
		</script>
	</head>
	<body>
	</body>
</html>

  1. 数组sort()方法、reverse()方法。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//prompt()函数返回值为String类型,用+隐式转为Number
			var numArr = [];
			var num = +prompt("请输入需要比较大小的数量:");
			for (var i = 0; i < num; i++) {
				numArr[i] = prompt("请输入第" + (i + 1) + "个数:");
			}
			//sort()与reverse()都会修改原值
			numArr.sort();
			alert(numArr);
			numArr.reverse();
			alert(numArr);
		</script>
	</head>
	<body>
	</body>
</html>

本文地址:https://blog.csdn.net/w18789476022/article/details/109277102

《输入任意数量,进行正向、反向排序.doc》

下载本文的Word格式文档,以方便收藏与打印。