js bubbleSort

function bubbleSort(arr)  {
  if (arr.length <= 0) { return arr; }
  for (var i = 0, len = arr.length - 1; i < len; i++) {
    for (var j = 0; j < len - 1- i; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = temp;
      }
    }
  }
  return arr;
}

var arr = [1,34 ,3 , 5, 77, 2, 89];
console.log(bubbleSort(arr)); // [ 1, 2, 3, 5, 34, 77, 89 ]

  

时间: 2024-10-09 19:23:23

js bubbleSort的相关文章

js 数组排序和算法排序

1.算法排序 a.插入排序 var arr = [23,34,3,4,23,44,333,444]; var arrShow = (function insertionSort(array){ if(Object.prototype.toString.call(array).slice(8,-1) ==='Array'){ for (var i = 1; i < array.length; i++) { var key = array[i]; var j = i - 1; while (j >

js 数组&amp;字符串 去重

Array.prototype.unique1 = function() { var n = []; //一个新的临时数组 for(var i = 0; i < this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i]) == -1) n.push(this[i]); } return n; } Array.prototype.unique2 = funct

JS 排序算法整理

关于排序算法的问题可以在网上搜到一大堆,但是纯 JS 版比较零散,之前面试的时候特意整理了一遍,附带排序效率比较. //1.冒泡排序 var bubbleSort = function(arr) { for (var i = 0, len = arr.length; i < len - 1; i++) { for (var j = i + 1; j < len; j++) { if (arr[i] > arr[j]) { var temp = arr[i]; arr[i] = arr[j

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的实现

一:冒泡排序 1. 原理 a. 从头开始比较相邻的两个待排序元素,如果前面元素大于后面元素,就将二个元素位置互换 b. 这样对序列的第0个元素到n-1个元素进行一次遍历后,最大的一个元素就“沉”到序列的最后位置(第n-1个位置,n为待排序元素个数) c.排除此次排序最后面的那个元素(n=n-1),继续对剩余序列重复前面两步 d. 当(n= n-1)=0时,排序完成 2. 具体实现 以如下待排序序列为例: 到此,第一次冒泡完成,最大值7冒泡到最后面. 然后继续对除最后元素(7)外的序列进行冒泡排序

js跟数组相关的一到面试题

面试题真的是查漏补缺,尤其是大公司大神们出的题目,总能告诉你某些地方你是学的有多么的不扎实…… 根据各科成绩排序: HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>百度面试——成绩排名</title> <style> *{margin:0;padding:0;} table{b

几种常见算法js

没有系统地总结过js算法,虽然在项目中陆陆续续的也用过好多算法,有一次去一家公司面试的时候,面试官说想谈谈算法,有点懵了,所以接下来的面试中谈的也有点被动,避免下次再碰到这种情况,今天决定好好的总结下js的各种算法. 1.插入排序 看到一篇直接插入排序讲的很好的文章,将插入排序与抽扑克牌进行对比,一直动态地添加扑克牌,添加时进行排序,等牌抽完了,手里的牌也整理好了. 转换成算法就是从第二个数据开始,依次与前面的数据进行比对,如果小于该数据,就将二者位置互换,这就是插入排序的原理. functio

JS基础的笔记整理

JS前置知识 什么是JS语言 javascript是一种运行在客户端 的脚本语言 客户端:即接受服务的一端,与服务端相对应,在前端开发中,通常客户端指的就是浏览器. 脚本语言:也叫解释型语言,特点是执行一行,解释一行,如果发现报错,代码就停止执行 . javascript的三个组成部分:ECMAScript.BOM.DOM ECMAScript:定义了javascript的语法规范. BOM:一套操作浏览器功能的API. DOM:一套操作页面元素的API. script标签 书写Javascri

《JS弹出页面》

一.引入两个文件 1.macco.js (function ($) {    var macco = {        debug: true,        // arguments : all        // console.log        log: function () {            var a = window.console, b = arguments;            if (a && a.log) {                a.log.