JavaScript 数组 sort,reverse,冒泡排序,乱序
来源:互联网 发布:信息技术网络研修总结 编辑:程序博客网 时间:2024/05/17 04:32
<script>
//3、实现对数组进行乱序
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// console.log(a.sort());
for(var i=0;i<a.length;i++){
var r = parseInt(Math.random()*10);
// console.log(r);
}
//sort() 理解
var arry = [20,45,12,67,100,1,99];
console.log(arry.sort());
//结果:[1, 100, 12, 20, 45, 67, 99] 并不是按照大小排序,而是按照第一位数由小到大排序
var fruit = ['apple','orange','banana','grape','snowpear'];
console.log(fruit.sort());
/*结果:["apple", "banana", "grape", "orange", "snowpear"] 也是按照数组每个元素首字母
顺序排序*/
//reverse() 反序
console.log(arry); //此时数组顺序:[1, 100, 12, 20, 45, 67, 99]
console.log(arry.reverse()); //结果:[99, 67, 45, 20, 12, 100, 1] 反序
console.log(fruit);//此时数组顺序:["apple", "banana", "grape", "orange", "snowpear"]
console.log(fruit.reverse()); //["snowpear", "orange", "grape", "banana", "apple"]
//reverse()没有参数,只有一个反序作用
//sort(function)是带可选参数的,作用规定排序顺序,并且是参数必须是函数。
//利用sort()写最简单的冒泡排序法
var arry2 = [20,45,12,67,100,1,99];
var arry3 = arry2.sort(function(a,b){
/*若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。*/
return a - b;
});
console.log(arry3); //[1, 12, 20, 45, 67, 99, 100] //这才是最简单的冒泡排序法
// 如果想要从大到小的排序徐,则需要把arry3.reverse();反序一下即可
//第二种冒泡排序法循环比较
function bubbleSort(arry){
var temp;
for(var i=0;i <arry.length-1;i++){//外循环减少一次,内循环减少arry.lenth次
for(var j=0;j<arry.length;j++){
if(arry[j]>arry[j+1]){
temp = arry[j];
arry[j] = arry[j+1];
arry[j+1] = temp;
}
}
}
return arry;
}
var arryN = [20,45,12,67,100,1,99,21,800,33];
console.log(bubbleSort(arryN)); //[1, 12, 20, 21, 33, 45, 67, 99, 100, 800]
//利用sort()对数组进行一个乱序排序
var ar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function confuse(){
return (Math.random() > 0.4)?-1:1; /*人为控制a,b 返回值,但是此方法排序并不是很乱,也就是
在数组前面的元素还是靠近前面,后面的元素靠近后面,
*/
}
console.log(ar.sort(confuse));
//于是引进php的乱序排序法:(网上)
var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
if (!Array.prototype.shuffle) {
Array.prototype.shuffle = function() {
//至今不明白
for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
return this;
};
}
</script>
//3、实现对数组进行乱序
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// console.log(a.sort());
for(var i=0;i<a.length;i++){
var r = parseInt(Math.random()*10);
// console.log(r);
}
//sort() 理解
var arry = [20,45,12,67,100,1,99];
console.log(arry.sort());
//结果:[1, 100, 12, 20, 45, 67, 99] 并不是按照大小排序,而是按照第一位数由小到大排序
var fruit = ['apple','orange','banana','grape','snowpear'];
console.log(fruit.sort());
/*结果:["apple", "banana", "grape", "orange", "snowpear"] 也是按照数组每个元素首字母
顺序排序*/
//reverse() 反序
console.log(arry); //此时数组顺序:[1, 100, 12, 20, 45, 67, 99]
console.log(arry.reverse()); //结果:[99, 67, 45, 20, 12, 100, 1] 反序
console.log(fruit);//此时数组顺序:["apple", "banana", "grape", "orange", "snowpear"]
console.log(fruit.reverse()); //["snowpear", "orange", "grape", "banana", "apple"]
//reverse()没有参数,只有一个反序作用
//sort(function)是带可选参数的,作用规定排序顺序,并且是参数必须是函数。
//利用sort()写最简单的冒泡排序法
var arry2 = [20,45,12,67,100,1,99];
var arry3 = arry2.sort(function(a,b){
/*若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。*/
return a - b;
});
console.log(arry3); //[1, 12, 20, 45, 67, 99, 100] //这才是最简单的冒泡排序法
// 如果想要从大到小的排序徐,则需要把arry3.reverse();反序一下即可
//第二种冒泡排序法循环比较
function bubbleSort(arry){
var temp;
for(var i=0;i <arry.length-1;i++){//外循环减少一次,内循环减少arry.lenth次
for(var j=0;j<arry.length;j++){
if(arry[j]>arry[j+1]){
temp = arry[j];
arry[j] = arry[j+1];
arry[j+1] = temp;
}
}
}
return arry;
}
var arryN = [20,45,12,67,100,1,99,21,800,33];
console.log(bubbleSort(arryN)); //[1, 12, 20, 21, 33, 45, 67, 99, 100, 800]
//利用sort()对数组进行一个乱序排序
var ar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function confuse(){
return (Math.random() > 0.4)?-1:1; /*人为控制a,b 返回值,但是此方法排序并不是很乱,也就是
在数组前面的元素还是靠近前面,后面的元素靠近后面,
*/
}
console.log(ar.sort(confuse));
//于是引进php的乱序排序法:(网上)
var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
if (!Array.prototype.shuffle) {
Array.prototype.shuffle = function() {
//至今不明白
for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
return this;
};
}
console.log(a.shuffle());
//乱序第三种方法
var array =[0,1,2,3,4,5,6,7,8,10];
function change(arr){
var temp, r;
for(var i=0;i<arr.length;i++){
temp = arr[i];
r = Math.floor(Math.random()*arr.length);
//Math.floor()向下取整 Math.ceil()向上取整 Math.round()四舍五入
arr[i] = arr[r];
arr[r] = temp;
}
}
change(array);
console.log(array);
</script>
阅读全文
0 0
- JavaScript 数组 sort,reverse,冒泡排序,乱序
- javascript 数组排序函数sort和reverse
- C#数组(定义/Array.Sort/Array.Reverse/冒泡排序)
- JS使用sort方法实现冒泡排序和乱序
- sort数组冒泡排序
- Javascript数组的排序 sort()方法和reverse()方法
- Javascript数组的排序 sort()方法和reverse()方法
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- 冒泡排序&乱序输出
- 【Javascript】数组排序sort()
- javascript数组排序Sort()
- JavaScript 数组乱序
- javascript数组冒泡排序
- JavaScript数组冒泡排序
- JavaScript中实现数组的排序、乱序和搜索
- JavaScript中实现数组的排序、乱序和搜索
- JS数组排序函数sort()、reverse()
- js中数组反向、排序reverse、sort
- Thrall’s Dream(山东省第四届ACM大学生程序设计竞赛 )
- Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path
- 引用类型之RegExp类型
- Unity手游性能测评报告——MOBA篇
- 进程同步-生产者消费者问题
- JavaScript 数组 sort,reverse,冒泡排序,乱序
- activiti(2):解读activiti数据表
- 每天一个 Linux 命令(39):grep 命令
- Android自定义View
- command not found: shopt linux 配置./bashrc 错误
- java标示符
- 基于stm32的热释传感器模块(库函数编程)
- js插件
- LR与SVM的异同