输入任意数量,进行正向、反向排序
程序员文章站
2022-07-10 13:00:53
输入任意数量,进行正向、反向排序方法一:冒泡排序法;(1) 原理: 思路: a)比较两个相邻的元素,如果后一个比前一个大,则交换位置 b) 第一轮的时候最后一个元素应该是最大的一个 c) 按照第一步的方法进行两个相邻的元素的比较,由于最后一个元素已经是最大的了,所以最后一个元素不用比较。...
输入任意数量,进行正向、反向排序
- 方法一:冒泡排序法;
(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>
- 数组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
上一篇: AI制作漂亮质感的甜蜜蜂巢背景图案