JavaScript进阶:几个排序算法

来源:互联网 发布:mysql怎么查看表空间 编辑:程序博客网 时间:2024/05/22 17:46
前言

为了便于对排序算法的理解,在本文写下三个排序算法的基本思想,在以后会继续补充。

算法

1、冒泡排序(Bubble Sort)
平均时间复杂度:O(n2)。
var myarr=new Array(5,4,3,2,1);function bubbleSort(arr){    var temp;    var len=arr.length;    for(var i=0;i<len;i++){        for(var j=0;j<len-1-i;j++)            if(arr[j]>arr[j+1]){                temp=arr[j];                arr[j]=arr[j+1];                arr[j+1]=temp;            }    }    alert(arr);}sort(myarr);

2、选择排序(Selection Sort)
平均复杂度:n(O2)
选择排序的思想是:遍历所有数,当遍历到某一个数n时,选择出这个数以及排在它后面的数之中最小的那一个(假设它为m),用这个查找出来的最小值m,替换这一个数n。
var myarr=new Array(5,4,3,2,1);function selectSort(arr){    var min;        //最小值的索引    var temp;    var len=arr.length;    for(var i=0;i<len-1;i++){        min=i;        for(var j=i+1;j<len;j++)        {            if(arr[j]<arr[min])                min=j;        }        temp=arr[i];        arr[i]=arr[min];        arr[min]=temp;    }    alert(arr);}selectSort(myarr);



3、插入排序(Insertion Sort)
平均复杂度:O(n2)
var myarr=new Array(5,4,3,2,1);function insertionSort(arr){    var pre;    var current;    var len=arr.length;    for(var i=1;i<len;i++){        current=arr[i];        pre=i-1;        while(pre>=0&&arr[pre]>current){            arr[pre+1]=arr[pre];            pre--;        }        arr[pre+1]=current;    }    alert(arr);}insertionSort(myarr);




原创粉丝点击