码迷,mamicode.com
首页 > 编程语言 > 详细

javascript学习笔记数组排序

时间:2014-10-28 17:14:27      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   java   for   sp   strong   

数组排序

1、冒泡排序   最常用也是最容易理解的排序方式(一个嵌套的循环比较每一次的大小根据设定的条件来交换位置)。

 1 function bubblesort(ary) {
 2             for (var i = 0; i < ary.length - 1; i++) {
 3                 for (var j = 0; j < ary.length - i - 1; j++) {
 4                     if (ary[j] > ary[j + 1]) {
 5                         var temp = ary[j];
 6                         ary[j] = ary[j + 1];
 7                         ary[j + 1] = temp;
 8                     }
 9                 }
10             }11         }

 

2、插入排序  通过每一个比较然后将比较后大的或者小的值插入到前面一个数的位置,在当前位置上的值下标往后移一位

 1 function insertionsort() {
 2         if (arr.length > 1) {
 3             var temp = null;
 4             for (var i = 1; i < arr.length; i++) {
 5                 if (arr[i]<arr[i-1]) {
 6                     temp = arr[i];
 7                     var p = i - 1;
 8                     while (p >= 0 && arr[p] > temp) {
 9                         arr[p + 1] = arr[p];
10                         p--;
11                     }
12                     arr[p + 1] = temp;
13                 }
14             }
15         }
16     }

 3、快速排序  快速排序又叫二分法排序,通过递归的方式将数组分解,然后在通过concat将所有分解的数组进行拼接

 1 function quicksort(tarr) {
 2         if (tarr.length>1) {
 3             var centerIndex = parseInt(tarr.length / 2);
 4             var larr=tarr.splice(centerIndex,1);
 5             var left=[],right=[];
 6             for(var i=0;i<tarr.length;i++){
 7                 if(tarr[i]<larr[0]) {
 8                     left.push(tarr[i]);
 9                 }else{
10                     right.push(tarr[i]);
11                 }
12             }
13             return fnKspx(left).concat(larr,fnKspx(right));
14         }else{
15             return tarr;
16         }
17     }

 

javascript学习笔记数组排序

标签:style   blog   io   color   ar   java   for   sp   strong   

原文地址:http://www.cnblogs.com/Star-xx/p/4057238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!