javascript排序算法
2016-04-12 00:00
267 查看
摘要: 本文中用javascript实现了数组的排序算法,包括冒泡排序法,选择排序法,插入排序法,快速排序法。
javascript对数组进行排序。首先定义要排序的数组。
然后定义一个用于交换数组中元素的方法
选择排序法
插入排序法
快速排序法
javascript对数组进行排序。首先定义要排序的数组。
var arr = [10,9,19,8,23,7,3];
然后定义一个用于交换数组中元素的方法
function swap(arr,i,j){ var temp = arr[i]; arr[i]=arr[j]; arr[j] = temp; }
冒泡排序法
/*冒泡排序法*/ function bubbleSort(){ for (var i = arr.length-1; i > 0; i--) { for(var j= 0;j<i;j++){ if(arr[j]>arr[j+1]){ swap(arr,j,j+1); } } } }
选择排序法
/*选择排序法*/ function selectSort(){ for (var i = 0; i < arr.length; i++) { var min = i; for(var j= i+1;j<arr.length;j++){ if(arr[min]>arr[j]){ min = j; } } swap(arr,i,min); } }
插入排序法
/*插入排序法*/ function insertSort(){ for (var i = 1; i < arr.length; i++) { var j = i; var temp = arr[i]; while(j>0&&temp<arr[j-1]){ arr[j]=arr[--j]; } arr[j] = temp; } }
快速排序法
/*快速排序法*/ function subQuikSort(arr,start,end){ if(end>start){ var temp = arr[start], i = start, j = end+1; while(true){ while(i<end&&arr[++i]<temp); while(j>start&&arr[--j]>temp); if(i<j){ swap(arr,i,j); }else{ break; } } swap(arr,start,j); subQuikSort(arr,start,j-1); subQuikSort(arr,j+1,end); } } function quikSort(){ return subQuikSort(arr,0,arr.length-1); }