JS数组经典冒泡排序

将8,4,3,1,4,6,等数字按照从小到大的顺序依次输出;

var arr=new Array();
arr.push(8);
arr.push(4);
arr.push(3);
arr.push(1);
arr.push(5);
arr.push(6);
var temp;
for(var i=0; i<arr.length;i++)
{
    for(var j=i+1;j<arr.length;j++)
    {
         if(arr[i]>arr[j])
          {
             temp=arr[i];
             arr[i]=arr[j];
             arr[j]=temp;
           }
     }
}
for(var x in arr )
{
   alert(arr[x]);
}

本题思路如下:将每个数字都放到数组里,然后将数组的每个数字取值,依次和后面的数字将比较,如果后面的数字大,那顺序不变,相反那就将后面的数字和前面的数字交换位置;

这里就需要一个交换赋值:temp;

注意:数组里的每一个数字和它后面的数字比较!!!,在最后插入一个针,将排列好的数组输出。

时间: 2024-08-24 11:40:09

JS数组经典冒泡排序的相关文章

js中的冒泡排序以及实现一个数组中得最到最大的数字小例

这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: 1.“编程复杂度”很低,很容易写出代码: 2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序.快速排序均不具有稳定性. 实现基本思路:冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数

js 数组去重(数组元素是对象的情况)

js数组去重有经典的 几种方法 但当数组元素是对象时,就不能简单地比较了,需要以某种方式遍历各值再判断是否已出现. 因为: 1.如果是哈希判断法,对象作哈希表的下标,就会自动转换成字符型类型,从而导致所有元素都相等,这时判断方法不再有意义.一般最后数组就只剩一个 2.如果是直接比较法,则因为对象在内存中是按引用访问的,属性值相同的对象也不会相等,简单的直接判断不再有意义.一般最后数组还是原样 所以就需要进行值的比较 当然了,也可以换着法来将相应对象转为字符串(不是默认的那种[object Obj

JS数组(Array)操作汇总

1.去掉重复的数组元素.2.获取一个数组中的重复项.3.求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节.4.判断一个字符串中出现次数最多的字符,统计这个次数.5.数组排序. 6.快排. 7.删除/添加数组项. 8.数组随机顺序输出. 9.数组求和.最大值. 10.判断是否为数组. 11.冒泡排序. 1.去掉重复的数组元素. Array.prototype.unique = function() { var ret = []; var o = {}; for(var i

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

js数组知识

js数组 shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined Javascript代码 var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 unshift:将参数添加到原数组开头,并返回数组的长度 Javascript代码 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总

js数组的操作

转载 js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多, 自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限

js数组小结

1.js数组使用sort()排序 var a = ["1","12","3","4","0"]; document.write(a.sort(function(a,b){ //实现升序排序 return a - b; })); 2.js使用数组实现一些数据结构 栈        push() , pop() 队列 shift() ,  push() 反向队列    unshift() , pop() 其中

js 数组,字符串,JSON,bind, Name

/** * Created by W.J.Chang on 2014/5/23. */ // 判读是否是数组的方法 console.log(Array.isArray(new Array)); console.log(Array.isArray([])); var arr = [1,2,3]; // 遍历方法 arr.forEach(function (v){ console.log(v); }); console.log("---------------------"); // 过滤

python数组与js数组(list)对比

本文和大家分享的是python数组与js数组相关内容,一起来看看吧,希望对大家学习python有所帮助. 创建 基本相同 js var person = ['xiaohong','wangwei','liudehua']; python person=['xiaohong','wangwei','liudehua'] 访问元素 基本相同 js person[0] //xiaohong python >>> person[0]'xiaohong' 切片 这块不一样,js用slice函数,p