js三种经典排序:冒泡排序插入排序快速排序

Harlem99      2022-02-09     381

关键词:

冒泡排序:
function bubbleSort(arr){
    for(var r=1;r<arr.length-1;r++){
        for(var i=0;i<arr.length-r;i++){
            if(arr[i]>arr[i+1]){
                arr[i]+=arr[i+1];
                arr[i+1]=arr[i]-arr[i+1];
                arr[i]-=arr[i+1];
            }
        }
    }
}
bubbleSort(arr);

  插入排序:

function insertSort(arr){
    for(var i=1;i<arr.length;i++){
        var t=arr[i];
        var p=i-1;
        while(p>=0&&arr[p]>t){
            arr[p+1]=arr[p];
            p--;
        }
        arr[p+1]=t;
    }
}
insertSort(arr);

 快速排序:

function quickSort(arr){
    if(arr.length>1){
        var c=parseInt((arr.length+1)/2);
        var center=arr.splice(c,1)[0];
        var left=[],right=[];
        for(var i=0;i<arr.length;i++){
            if(arr[i]<center) left.push(arr[i]);
            else right.push(arr[i]);
        }
        return quickSort(left).concat(center,quickSort(right));
    }else{
        return arr;
    }
}
arr=quickSort(arr);
console.log(String(arr));

  

 

js冒泡排序法——选择排序(other)——计数排序(桶排序)——快速排序——插入排序-更新(代码片段)

JavaScript排序算法JavaScript——冒泡排序法JavaScript——选择排序JavaScript——计数排序(桶排序)JavaScript——快速排序(递归二分法)JavaScript——插入排序JavaScript——冒泡排序法时间复杂度:O(nlogn)冒泡排序的英文BubbleSort... 查看详情

经典排序之冒泡排序和快速排序

一、冒泡排序 冒泡排序(BubbleSort)是一种比较经典的排序算法。 之所以称为“冒泡排序”,是因为在排序中,越大(降序排列)或越小(升序排列)的相邻元素会经由交换逐渐“浮”到前面,有如水中浮出的水泡,故形象地... 查看详情

数据结构-十大经典排序算法

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度平方阶(O(n2))排序各类简单排序:直接插入、直接选择和冒泡排序。线性对... 查看详情

十大经典排序算法(代码片段)

十大经典排序算法主题:排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:... 查看详情

图形化排序算法比较:快速排序插入排序选择排序冒泡排序

 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序  查看详情

排序(上)

最经典的、最常用的有:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序冒泡排序(BubbleSort)冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较。//冒泡排序... 查看详情

选择排序快速排序插入排序等经典八大算法稳定性分析(代码片段)

选择排序、快速排序、插入排序等经典八大算法稳定性分析稳定性定义:各排序算法的稳定性:一、冒泡排序二、选择排序三、插入排序四、快速排序五、归并排序六、希尔排序(shell)七、基数排序:八、堆排序常用... 查看详情

常见排序算法小结

...序等。这里着重讨论下冒泡排序,快速排序和插入排序这三种排序算法。冒泡排序——时间复杂度O( n2 )冒泡排序从第一个元素开始,依次与后面的元素比较,每次遇到比当前元素更大(或更小)的值时,则交换数值。每... 查看详情

[新星计划]python手撕代码|十大经典排序算法(代码片段)

文章目录●冒泡排序●选择排序●插入排序●快速排序●堆排序●归并排序●希尔排序●计数排序●桶排序●基数排序系列文章https://blog.csdn.net/cpen_web/category_11089219.html排序算法是《数据结构与算法》中最基本的算法之一。常见... 查看详情

九种经典排序算法汇总

/***********************************************************总结各种排序算法包括但不限于:1.插入排序类1.1直接插入排序1.2二分插入排序1.3希尔排序2.交换排序类2.1冒泡排序2.2快速排序3.选择排序3.1直接选择排序3.2堆排序4.归并排序5.基数... 查看详情

11|排序(上):为什么插入排序比冒泡排序更受欢迎?

只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。          查看详情

冒泡排序选择排序插入排序快速排序

冒泡排序(BubbleSort)冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次笔记两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行知道没有在需... 查看详情

七种经典排序算法最全攻略

经典排序算法在面试中占有很大的比重,也是基础。包括冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序。希望能帮助到有需要的同学。全部程序采用JAVA实现。本篇博客所有排序实现均默认从小到大... 查看详情

java交换排序之(冒泡排序快速排序)

...来无事,先写篇博文来结束今天。我们大家都知道java的排序算法很多,接下来我就先看看java最常用的几种排序算法的思想源码附上。(本文所有排序只针对值排序,关于对象排序问题待续.....)1.插入排序(直接插入排序、二分... 查看详情

排序算法(冒泡排序,选择排序,插入排序,快速排序)

数组的排序算法选择排序每次选择所要排序得数组中的最大值(由大到小排序,由小到大排序则选择最小值)的数组元素,将这个数组元组的值与最前面没有排序的数组元素进行交换,第一次排序之后,最大的数字来到了第一位,再从第... 查看详情

冒泡(bubblesort)选择排序插入排序快速排序

冒泡排序(bubblesort)packagemainimport"fmt"funcbubbleSortAsc(arrayA[]int)fori:=0;i<len(arrayA);i++ forj:=i+1;j<len(arrayA);j++ ifarrayA[i]>arrayA[j] arrayA[i],arrayA[j]=arrayA[j],arrayA[i] 查看详情

8大排序算法-我熟知(冒泡直接插入)

分类:1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速... 查看详情

冒泡排序,插入排序,归并排序,快速排序的学习笔记

这几个很基础的排序非常有用,我重新整理了下代码 1#include<iostream>2#include<algorithm>34usingnamespacestd;56voidBouble_Sort(int*Arry,intLenth)//冒泡排序7{8inti,k;910intflag=0;1112for(i=Lenth-1;i>=0;i--)13{14 查看详情