JS排序算法

冒泡排序:

vararray = [{"name":"aa",index:100},{"name":"aa",index:200},{"name":"aa",index:300}];

varlen = array.length;

for(vari =0; i < len -1; i++) {//-1 是为了j+1不会发生数组越界,且不会和自己比较

for(varj =0; j < len - i -1;j++) {

if(array[j] < array[j+1]) {

vartemp = a[j];

a[j] = a[j+1];

a[j+1] = temp;//交换位置

}

}

}

快速排序:

vararr = [{"name":"aa",index:200},{"name":"aa",index:100},{"name":"aa",index:300}];

functionqSort(arr,i,j){

if(i>=j)return;

vartempi=i,tempj=j;

varkey=arr[i];

while(i<j){

while(i<j&&arr[j].index>key.index) j--;//从右向左找第1个小于key的数

if(i<j) arr[i++]=arr[j];

while(i<j&&arr[i].index<key.index) i++;//从左向右找第1个大于key的数

if(i<j) arr[j--]=arr[i];

}

arr[i]=key;

qSort(arr,tempi,i-1);

qSort(arr,i+1,tempj);

}

qSort(arr,0,2)

选择排序:

varmin,len = arr.length;

for(vari =0; i < len -1; i++) {

min = i;

for(varj = i +1; j < len ; j++) {

if(arr[j].index < arr[min].index) {

min = j;

}

}

vartemp = arr[min];

arr[min] = arr[i];

arr[i] = temp;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,793评论 0 33
  • 某次二面时,面试官问起Js排序问题,吾绞尽脑汁回答了几种,深感算法有很大的问题,所以总计一下! 排序算法说明 (1...
    流浪的先知阅读 1,230评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 之前写过js实现数组去重, 今天继续研究数组: 排序算法实现。 排序是数据结构主要内容,并不限于语言主要在于思想;...
    萧强阅读 11,553评论 3 50
  • 首先要展示物理趣味 中学生学习物理兴趣的水平大致处在直接兴趣阶段,他们对自然现象的解释和日常生活中的实际问题的处理...
    hyhyhyaaaa阅读 253评论 0 0