基本排序算法的JavaScript实现
来源:互联网 发布:iphone实用软件 编辑:程序博客网 时间:2024/06/08 06:05
基本排序算法的JavaScript实现
前言
最近,复习了一下基本的排序算法,以前在校使用C语言实现的,现在由于自己做的是前端开发,所以就动手使用JavaScript实现了一些基本排序算法。
内容
以下是部分基本排序算法的实现:
插入排序(Insertion sort)
insertionSort.js
function insertionSort(arr){ var i, j, len, tmp; for(i = 1, len = arr.length; i < len; i++){ tmp = arr[i]; for(j = i - 1; j >= 0; j--){ if(tmp < arr[j]){ arr[j + 1] = arr[j]; }else{ break; } } arr[j + 1] = tmp; }}var arr = [8, 2, 4, 9, 3, 6];console.log('Before sorting: ', arr);insertionSort(arr);console.log('After sorting: ', arr);
归并排序(Merge sort)
mergeSort.js
function mergeSort(arr){ var k, leftArr, rightArr, sorted = [], len = arr.length; if(len === 1){ return arr; } k = Math.floor(len / 2); leftArr = mergeSort(arr.slice(0, k)); rightArr = mergeSort(arr.slice(k, len)); while(leftArr.length > 0 && rightArr.length > 0){ if(leftArr[0] <= rightArr[0]){ sorted.push(leftArr.shift()); }else{ sorted.push(rightArr.shift()); } } sorted = sorted.concat(leftArr).concat(rightArr); return sorted;}var arr = [8, 2, 4, 9, 3, 6];console.log('Before sorting: ', arr);arr = mergeSort(arr);console.log('After sorting: ', arr);
快速排序(Quicksort)
quicksort.js
function quicksort(arr, p, r){ var i, j, pivot, tmp; if(p < r){ for(i = p - 1, j = p, pivot = arr[r]; j < r; j++){ if(arr[j] <= pivot){ i++; tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } tmp = arr[j]; arr[j] = arr[i + 1]; arr[i + 1] = tmp; quicksort(arr, p, i); quicksort(arr, i + 2, r); }}var arr = [8, 2, 4, 9, 3, 6];console.log('Before sorting: ', arr);quicksort(arr, 0, 5);console.log('After sorting: ', arr);
1 0
- 基本排序算法的JavaScript实现
- 基本排序算法的实现
- 基本排序算法的实现
- 排序算法的JavaScript实现
- 【排序算法的JavaScript实现】
- 基本排序算法实现
- 基本排序算法的C语言实现
- perl 实现的基本排序算法
- 基本的排序算法原理与实现
- 基本的内排序算法及其实现
- 基本排序算法的分析和实现
- 一些基本排序算法的实现
- 一些基本排序算法的实现(转载)
- Java 实现基本的排序算法
- 基本排序算法的Python实现
- 各种基本排序算法的java实现
- java基本排序算法的实现
- 基本排序算法的C语言实现
- scala学习笔记一(基础,安装及数据类型)
- 【Java并发编程】之十:使用wait/notify/notifyAll实现线程间通信的几点重要说明(r)
- python模拟翻页+提取相关信息
- HTML 基本表格制作
- 高版本orcale导出的dmp导入低版本oracle报错:oracle 导入 dmp 不是有效的导出文件, 头部验证失败
- 基本排序算法的JavaScript实现
- C#多线程(下)
- 多线程学习一
- 2016年最新iOS面试题精选总结 --- 综述(一)
- windows检查端口占用
- Altium下元器件中英文对照
- [hdu2167][DP][状态压缩]Pebbles
- [Codeforces 585C] Alice, Bob, Oranges and Apples (Stern-Brocot Tree + 更相减损法)
- 常用的设计模式,及简单介绍