参考回答:
基本排序算法:冒泡,选择,插入,希尔,归并,快排
冒泡排序:
function bubbleSort(data){
var temp=0;
for(var i=data.length;i>0;i--){
for(var j=0;j<i-1;j++){
if(data[j]>data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
return data;
}
选择排序:
function selectionSort(data){
for(var i=0;i<data.length;i++){
var min=data[i];
var temp;
var index=1;
for(var j=i+1;j<data.length;j++){
if(data[j]<min)
{
temp=data[j];
data[j]=min;
min=temp;
}
}
temp=data[i];
data[i]=min;
data[index]=temp
}
插入排序:
function insertSort(data){
var len=data.length;
for(var i=0;i<len;i++){
var key=data[i];
var j=i-1;
while(j>=0&&data[j]>key){
data[j+1]=data[i];
j--;
}
data[j+1]=key;
}
return data;
}
希尔排序:
function shallSort(array) {
var increment = array.length;
var i;
var temp; //暂存
do {
//设置增量
increment = Math.floor(increment / 3) + 1;
for (i = increment ; i < array.length; i++) {
if ( array[i] < array[i - increment]) {
temp = array[i];
for (var j = i - increment; j >= 0 && temp < array[j]; j -= increment) {
array[j + increment] = array[j];
}
array[j + increment] = temp;
}
}
}
while (increment > 1)
return array;
}
归并排序:
function mergeSort ( array ) {
var len = array.length;
if( len < 2 ){
return array;
}
var middle = Math.floor(len / 2),
left = array.slice(0, middle),
right = array.slice(middle);
return merge(mergeSort(left), mergeSort(right));
}
function merge(left, right)
{
var result = [];
while (left.length && right.length) {
if (left[0] <= right[0]) {
result.push(left.shift());
} else {
result.push(right.shift());
}
}
while (left.length)
result.push(left.shift());
while (right.length)
result.push(right.shift());
return result;
}
快速排序
function quickSort(arr){
if(arr.length==0)
return [];
var left=[];
var right=[];
var pivot=arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]<pivot){
left.push(arr[i]);
}
else{
right.push(arr[i]);
}
}
return quickSort(left).concat(pivot,quickSort(right));
}
本文向大家介绍常见的搜索算法有哪几种?相关面试题,主要包含被问及常见的搜索算法有哪几种?时的应答技巧和注意事项,需要的朋友参考一下 广度优先搜索(BFS) 深度优先搜索(DFS) 爬山法(Hill Climbing) 最佳优先算法(Best-first search strategy) 回溯法 (Backtracking) 分支限界算法(Branch-and-bound Search Algor
本文向大家介绍JavaScript数组排序的六种常见算法总结,包括了JavaScript数组排序的六种常见算法总结的使用技巧和注意事项,需要的朋友参考一下 前言 着急用的话,选择前两个就行了,后面的看看就好。 开发中,遇到数组排序的需求很频繁,这篇文章会介绍几个常见排序思路。 一、希尔排序(性能最好) 如果要从大到小排列,则 while(arr[n] > arr[n - interval] &&
本文向大家介绍JS实现倒序输出的几种常用方法示例,包括了JS实现倒序输出的几种常用方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现倒序输出的几种常用方法。分享给大家供大家参考,具体如下: 1.通过split和数组的逆序输出 2.通过split和reverse 3.通过for循环数组前后调换数据 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScr
本文向大家介绍js实现常用排序算法,包括了js实现常用排序算法的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了js实现常用排序算法,具体内容如下 1.冒泡排序 2.选择排序 3.插入排序 4.希尔排序 5.归并排序 6.快速排序 总结:算法效率比较: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍请问稳定排序哪几种?相关面试题,主要包含被问及请问稳定排序哪几种?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序 参考回答: 1、快排算法 根据哨兵元素,用两个指针指向待排序数组的首尾,首指针从前往后移动找到比哨兵元素大的,尾指针从后往前移动找到比哨兵元素小的,交换两个元素,直到两个指针相遇,这是一趟排序,经常这趟排序
本文向大家介绍JavaScript中三种常见的排序方法,包括了JavaScript中三种常见的排序方法的使用技巧和注意事项,需要的朋友参考一下 1、快速排序: 2、插入排序 3、冒泡排序 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!