“`” 参考回答:
基本排序算法:冒泡,选择,插入,希尔,归并,快排
<strong>冒泡排序:</strong></p>
<pre><code>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;}</code></pre>
<strong>选择排序:</strong>
<pre><code>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}</code></pre>
<strong>插入排序:</strong>
<pre><code>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;}</code></pre>
<strong>希尔排序:</strong>
<pre><code>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;}</code></pre>
<strong>归并排序:</strong>
<pre><code>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;}</code></pre>
<strong>快速排序</strong>
<pre><code>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));}</code></pre>
<pre><code> "“`
Was this helpful?
0 /
0