JS实现排序算法
代码如下:
1、冒泡排序
<script>
var arr = [9, 8, 7, 5, 7, 1, 45, 12, 7, 74, 4];
for (var i = 0; i < arr.length; i++) {
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);
</script>
2、选择排序
<script>
var arr = [9, 8, 7, 5, 7, 1, 45, 12, 7, 74, 4];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
var temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
console.log(arr);
</script>
3、快速排序
<script>
var arr = [9, 8, 7, 5, 7, 1, 45, 12, 7, 74, 4]; function quickSort(arr) {
// 递归停止条件
if (arr.length <= 1) {
return arr;
}
var midIndex = parseInt(arr.length / 2);
var left = [];
var right = [];
arr.forEach(function (item, index) {
if (index == midIndex) { } else if (arr[index] < arr[midIndex]) {
left.push(arr[index]);
} else {
right.push(arr[index]);
}
});
return quickSort(left).concat(arr[midIndex]).concat(quickSort(right));
}
console.log(quickSort(arr));
</script>
4、插入排序
<script>
var arr = [9, 8, 7, 5, 7, 1, 45, 12, 7, 74, 4]; for (var i = 0; i < arr.length; i++) {
var m=i;
while (i - 1 >= 0 && arr[m] < arr[m - 1]) {
var temp=arr[m];
arr[m]=arr[m-1];
arr[m-1]=temp;
m--;
}
}
console.log(arr);
</script>
5、希尔排序
<script>
var arr = [9, 8, 7, 5, 7, 1, 45, 12, 7, 74, 4];
//设定步长初始值
var interval = parseInt(arr.length / 2);
while (interval > 0) {
for (var i = 0; i < arr.length; i++) {
var m = i;
while (i - 1 >= 0 && arr[m] < arr[m - interval]) {
var temp = arr[m];
arr[m] = arr[m - interval];
arr[m - interval] = temp;
m--;
}
}
interval = parseInt(interval / 2);
}
console.log(arr);
</script>
JS实现排序算法的更多相关文章
- JS的排序算法
排序是最基本的算法(本文排序为升序Ascending),常见的有以下几种: 1.冒泡排序 Bubble Sort 2.选择排序 Selection Sort 3.插入排序 Insertion Sort ...
- JS常见排序算法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 实现排序算法 -- 快速排序(Quick Sort)
原文: 十大经典排序算法(动图演示) 快速排序 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整 ...
- js 实现排序算法 -- 归并排序(Merge Sort)
原文: 十大经典排序算法(动图演示) 归并排序 归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.将已有序的子序列合并,得 ...
- js 实现排序算法 -- 插入排序(Insertion Sort)
原文: 十大经典排序算法(动图演示) 插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, ...
- js 实现排序算法 -- 希尔排序(Shell Sort)
原文: 十大经典排序算法(动图演示) 希尔排序 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版.它与插入排序的不同之处在于,它会优先比较距离较远的元素.希尔排序又叫缩 ...
- js 实现排序算法 -- 冒泡排序(Bubble Sort)
原文: 十大经典排序算法(动图演示) 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来.走访数列的工作 ...
- js 实现排序算法 -- 选择排序(Selection Sort)
原文: 十大经典排序算法(动图演示) 选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存 ...
- JS 随机排序算法
https://www.cnblogs.com/getdaydayup/p/6592154.html 使用JS编写一个方法 让数组中的元素每次刷新随机排列 法一: var arr =[1,2,3,4] ...
- js分组排序算法, OrderBy
由于项目中需要对数据进行分组排序,类似于sql中 order by column1,column2.... 实现的关键是 分组排序,第一个column1,排序完成之后,对其分组,然后按照column ...
随机推荐
- 如何解决Java警告信息:"objc[31336]: Class JavaLaunchHelper is implemented in both places ..."
在macOS High Sierra Version 10.13.6下使用Intellij在Java 8上执行Java程序,console中会打印如下警告信息: objc[31336]: Class ...
- RPC-dubbo基本使用
22.本地存根 消费者通过创建实现一个服务接口的实例,可以在执行远程调用前拿到远程调用的代理实例,进而可以在远程调用前.后添加一些操作,在出现异常后进行一些容错处理. 这个使用场景,可以调用前作数 ...
- 第三节:Windows平台部署Asp.Net Core应用(基于IIS和Windows服务两种模式)
一. 简介 二. 文件系统发布至IIS 三. Web部署发布至IIS 四. FTP发布至IIS 五. Windows服务的形式发布 ! 作 者 : Yaopengfei(姚鹏飞) 博客地址 ...
- Springboot自定义异常处理
1.自定义异常类 import lombok.Data; @Data public class UserException extends RuntimeException { private Lon ...
- linux学习------磁盘性能测试
测试服务器 1核1G配置 下载后放在你想测试的目录下,执行preparefile.sh准备测试文件,完成后执行runTest.sh执行测试,等待测试结果完成. {sysbench_bin}> ...
- js ajax方法模板
ajax方法: $.ajax({ type: "POST", url: "WebService.asmx/sp_sj_yisheng_gexinhuaAdd", ...
- 微信小程序出现 Expecting 'STRING','NUMBER','NULL','TRUE','FALSE','{','[', got INVALID
是因为,app.json中不能有注释,我将我上面注释的部分去掉,就可以了
- shiro教程
ref https://www.jianshu.com/p/5a35d0100a71 https://www.jianshu.com/p/0366a1675bb6 https://blog.csdn. ...
- java界面--WePush-master 项目跑起来 -碰到的问题
仅能在IntelliJ里面打开GUI Form文件来进行界面的拖拽设计--eclipse中也可以了 当eclipse 打开.form文件时,提示有.对应的编辑工具可以打开它,请到市场去安装 但是:本人 ...
- module.ngdoc
译自Angular's module docs 1.模块 大部分的应用都有一个主要的方法来实例化,链接,引导.angular应用没有这个方法,而是用模块声明来替代. 这种方式的优点: *程序的声明越详 ...