JavaScript 排序学习

  冒泡排序

  选择排序

  插入排序

  对于好久都不清楚的排序今天理了一下,包括冒泡排序、选择排序、插入排序,写完这个再看看和快速排序的区别。感觉大学学的都还给老师了。

----冒泡

/*
  现在有 数组 arr=[4,9,7,1,3]
  相邻值之间进行对比,前者比后者大,则进行互换,每一次都会把最大的放到最后面
   4 | 9 | 7 | 1 | 3
   第一轮
    4 | 7 | 1| 3 | 9
   第二轮
   4 | 1 | 3 | 7 | 9
   第三轮
   1 | 3 | 4 | 7 | 9
   第四轮
   1 | 3 | 4 | 7 | 9
*

冒泡排序的具体代码

var arr=[4,9,7,1,3];
    maopao(arr);
    function maopao(arr){
        for(var i=0;i<arr.length-1;i++){ //循环次数是length-1
            for(var j=0;j<arr.length-i-1;j++){//内部循环
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        console.log(‘冒泡排序‘+arr);
    }

----选择排序

/*
     现在有 数组 arr=[4,9,7,1,3]
     假设 i下表对应的值是最小值,然后,分别和数组中的每一个值进行对比
     4 | 9 | 7 | 1 | 3
     第一轮
     1 | 7 | 4| 3 | 9
     第二轮
     1 | 3 | 7 | 4 | 9
     第三轮
     1 | 3 | 4 | 7 | 9
     第四轮
     1 | 3 | 4 | 7 | 9
     */
var arr=[4,9,7,1,3];
    xuanzepaixun(arr);
    function xuanzepaixun(arr){
        for(var i=0;i<arr.length-1;i++){
            for(var j=i+1;j<arr.length;j++){
                var min=i;  //假设下标为i的值是最小值
                if(arr[min]>arr[j]){ //分别和数组中的值依次进行对比
                    var temp=arr[j];
                    arr[j]=arr[min];
                    arr[min]=temp;
                }
            }
        }
        console.log(‘选择排序‘+arr)
    }

---插入排序

/*
     现在有 数组 arr=[4,9,7,1,3]
     把下标为i的值分别与下标i前面的值进行对比进行从小到大排序
     4 | 9 | 7 | 1 | 3
     第一轮
     4 | 9 | 7 | 1 | 3
     第二轮
     4 | 7 | 9 | 1 | 3
     第三轮
     1 | 4 | 7 | 9 | 3
     第四轮
     1 | 3 | 4 | 7 | 9
     */

    var arr=[4,9,7,1,3];
    charupaixu(arr);
    function charupaixu(arr){
       for(var i=1;i<arr.length;i++){
           var num=arr[i];
           var j=i;
           while(arr[j-1]>num){
               arr[j]=arr[j-1];
               --j;
           }
           arr[j]=num;
       }
       console.log(arr);
    }

---小结

  冒泡、选择、插入排序,最大的不同就是数据不同数据之间对比方式不同,结果都一样。

时间: 2024-10-01 05:50:32

JavaScript 排序学习的相关文章

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方

初步总结javascript中学习DOM之前的知识

嘿嘿,又到了周末时间,周六其实就是总结这周的学习的,记得周二周三刚开始接触javascript时间,还是不知道怎么学习的,就感觉找不到方向,那时间学习的只是总结了一些简单的定义或者是学习结构,今天就把这些重新练习了一下,感觉还是蛮容易找到学习的兴趣的,顿时就默默的开始了今天的练习过程.今天就总结下初步认识javascript时间的一些实例,记得前面总结的并不完全,所以在这里总结一下基本概念. 一.基本的认识一些类型和方法 <script> var colors = new Array(3);

javascript基础学习(十)

javascript之数组 学习要点: 数组的介绍 定义数组 数组元素 数组的方法 一.数组的介绍 数组中的元素类型可以是数字型.字符串型.布尔型等,甚至也可以是一个数组. 二.定义数组 1.通过数组的构造函数来定义数组: var arr=new Array(); var arr=new Array(size); var arr=new Array(element1,element2,...); 2.直接定义数组: var arr=["字符串",true,13]; ps: 和Objec

JavaScript 基础学习1-day14

JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator

JavaScript正则表达式学习笔记之一 - 理论基础

自从年前得空写了两篇文章之后就开始忙了,这一忙就是2个月??.当时信誓旦旦说的定期写篇博客的计划也就泡汤了??,不过好在最近有空,顺便总结一下这两个月遇到的几个问题.第一个问题就是项目中用到了一些正则才发现之前被自己忽略的正则是时候补一补了.恰逢今天周六??,就把自己学习JavaScript正则表达式的笔记整理成文,写了这篇关于正则表达式理论基础的文章,希望本文能对有需要的同学提供帮助.号外:本文相对基础,大神请忽略??. 一. 基本概念 正则表达式是用于匹配字符串中字符组合的模式. 一种几乎可

javascript基础学习(十五)

javascript之cookie 学习要点: cookie介绍 创建与获取cookie cookie的编码 cookie的生存期 cookie的路径 cookie的domain cookie的secure 一.cookie介绍 cookie实际上就是一些信息,这些信息以文件的形式存储在客户端计算机上.在javascript中,cookie主要用来保存状态,或用于识别身份. 二.创建与获取cookie 创建cookie的语法代码如下所示:document.cookie="name=value&q

javascript基础学习(八)

javascript之日期对象 学习要点: 日期对象 将日期对象转换为字符串 将日期对象中的日期和时间转换为字符串 日期对象中的日期 日期对象中的时间 设置日期对象中的日期 设置日期对象中的时间 与毫秒相关的方法 一.日期对象 在javascript中并没有日期型的数据类型,但是提供了一个日期对象可以操作日期和时间. 日期对象的创建: new Date(); 二.将日期对象转换为字符串 将日期对象转换为字符串可以使用以下4种方法: date.toString();//将日期对象转换为字符串时,采

javascript基础学习(二)

javascript的数据类型 学习要点: typeof操作符 五种简单数据类型:Undefined.String.Number.Null.Boolean 引用数据类型:数组和对象 一.typeof操作符 typeof操作符用来检测变量的数据类型,操作符可以操作变量也可以操作字面量. 对变量或值运用typeof操作符得到如下值: undefined----如果变量是Undefined类型: boolean-------如果变量是Boolean类型: number-------如果变量是Numbe

javascript小白学习指南0---1

引言: 做为一名程序员,都是真心的想把自己的东西分享出来,供大家一起学习探讨,一起提高技能,一起涨工资,呵 这一系列的文章都是关于Javascript 基础的 当然文章当中穿插了些我自己的理解,希望可以帮助一些刚开始的童鞋! 废话不多说我们开始吧! 第一章:Javascript 基本概念 主要内容 数据类型 控制语句 函数 我们先从最简单的数据类型开始吧! 首先请记住javascript 有5种基本数据类型和1种复杂数据类型,至于为什么只有这六种,大家可以去翻翻W3C的资料哈! 五种基本数据类型