JavascriptʵÏֵij£ÓÃËã·¨£¨ÈçðÅÝ¡¢¿ìËÙ¡¢¸ë³²¡¢ÆæÅ¼µÈ£©

¸´ÖÆ´úÂë ´úÂëÈçÏÂ:

¡¡¡¡l = [6, 2, 4, 1, 98, 34, 5, 9, 23, 8, 10, 32]

¡¡¡¡//ðÅÝÅÅÐò

¡¡¡¡/*function bubbleSort(arr) {

¡¡¡¡newarr = arr.slice()

¡¡¡¡if (newarr.length <= 2) return newarr

¡¡¡¡for (var i = 0; i < newarr.length - 1; i++) {

¡¡¡¡for (var j = 0; j < newarr.length - i - 1; j++) {

¡¡¡¡if (newarr[j] > newarr[j + 1]) {

¡¡¡¡newarr[j] = [newarr[j + 1], newarr[j + 1] = newarr[j]][0]

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return newarr

¡¡¡¡}

¡¡¡¡console.log(l)

¡¡¡¡result = bubbleSort(l)

¡¡¡¡console.log(result)*/

¡¡¡¡//¿ìËÙÅÅÐò

¡¡¡¡/*function quickSort(arr) {

¡¡¡¡if (arr.length <= 1) return arr;

¡¡¡¡var left = [],

¡¡¡¡right = [],

¡¡¡¡middle = [];

¡¡¡¡var mid = arr[Math.floor(arr.length / 2)]

¡¡¡¡for (var i = 0; i < arr.length; i++) {

¡¡¡¡if (arr[i] < mid) {

¡¡¡¡left.push(arr[i]);

¡¡¡¡} else if (arr[i] > mid) {

¡¡¡¡right.push(arr[i]);

¡¡¡¡} else {

¡¡¡¡middle.push(mid);

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return [].concat(quickSort(left), middle, quickSort(right))

¡¡¡¡}

¡¡¡¡var results = quickSort(l)

¡¡¡¡console.log(results)

¡¡¡¡*/

¡¡¡¡//Ñ¡ÔñÅÅÐò

¡¡¡¡/*function selectSort(arr) {

¡¡¡¡var min = 9999,

¡¡¡¡minindex = 0;

¡¡¡¡var left = [],

¡¡¡¡right = arr.slice();

¡¡¡¡if (arr.length <= 1) return arr;

¡¡¡¡for (var i = 0; i < arr.length; i++) {

¡¡¡¡if (arr[i] <= min) {

¡¡¡¡min = arr[i];

¡¡¡¡minindex = i;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡left.push(min);

¡¡¡¡right.splice(minindex, 1);

¡¡¡¡return [].concat(left, selectSort(right))

¡¡¡¡}

¡¡¡¡var results = selectSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡//²åÈëÅÅÐò

¡¡¡¡/*function insertSort(arr) {

¡¡¡¡var tmp;

¡¡¡¡for (var i = 1; i < arr.length; i++) {

¡¡¡¡tmp = arr[i];

¡¡¡¡for (var j = i; j > 0; j--) {

¡¡¡¡if (arr[j - 1] > tmp) {

¡¡¡¡arr[j] = arr[j - 1];

¡¡¡¡} else {

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡arr[j] = tmp;

¡¡¡¡}

¡¡¡¡return arr;

¡¡¡¡}

¡¡¡¡var results = insertSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡//ľͰÅÅÐò

¡¡¡¡/*function bucketSort(arr){

¡¡¡¡var bucket = [];

¡¡¡¡var newarr = [];

¡¡¡¡for (var i = 0; i < arr.length; i++) {

¡¡¡¡bucket[arr[i]] = arr[i];

¡¡¡¡}

¡¡¡¡for (var i = 0; i < bucket.length; i++) {

¡¡¡¡if (bucket[i] !== undefined){

¡¡¡¡newarr.push(bucket[i])

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return newarr;

¡¡¡¡}

¡¡¡¡var results = bucketSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡//¸ë³²ÅÅÐò,·Ç¸ºÕûÊý

¡¡¡¡/*function pigeonholeSort(arr){

¡¡¡¡var tempArr = [];

¡¡¡¡for(var i=0,l=arr.length;i<l;i++){

¡¡¡¡tempArr[arr[i]] = (tempArr[arr[i]]+1)||1 ;

¡¡¡¡}

¡¡¡¡var result = [],count;

¡¡¡¡for(var k=0;k<tempArr.length;k++){

¡¡¡¡count = tempArr[k];

¡¡¡¡if(count){

¡¡¡¡for(var i=0;i<count;i++){

¡¡¡¡result.push(k);

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return result;

¡¡¡¡}

¡¡¡¡var results = pigeonholeSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡//¹é²¢ÅÅÐò

¡¡¡¡/*function mergeSort(arr) {

¡¡¡¡if (arr.length <= 1) return arr;

¡¡¡¡var mid = Math.floor(arr.length / 2);

¡¡¡¡var left = MergeSort(arr.slice(0, mid));

¡¡¡¡var right = MergeSort(arr.slice(mid));

¡¡¡¡var result = [];

¡¡¡¡while (left.length && right.length) {

¡¡¡¡if (left[left.length - 1] <= right[0]) {

¡¡¡¡result = result.concat(left);

¡¡¡¡left = [];

¡¡¡¡} else if (right[right.length - 1] < left[0]) {

¡¡¡¡result = result.concat(right);

¡¡¡¡right = [];

¡¡¡¡} else {

¡¡¡¡if (right[0] < left[0]) {

¡¡¡¡result.push(right.shift());

¡¡¡¡} else {

¡¡¡¡result.push(left.shift());

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡result = result.concat(left, right);

¡¡¡¡return result;

¡¡¡¡}*/

¡¡¡¡/*function mergeSort(arr) {

¡¡¡¡var merge = function(left, right) {

¡¡¡¡var result = [];

¡¡¡¡while (left.length > 0 && right.length > 0) {

¡¡¡¡if (left[0] < right[0]) {

¡¡¡¡result.push(left.shift());

¡¡¡¡} else {

¡¡¡¡result.push(right.shift());

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return result.concat(left).concat(right);

¡¡¡¡}

¡¡¡¡if (arr.length == 1) return arr;

¡¡¡¡var middle = Math.floor(arr.length / 2),

¡¡¡¡left = arr.slice(0, middle),

¡¡¡¡right = arr.slice(middle);

¡¡¡¡return merge(mergeSort(left), mergeSort(right));

¡¡¡¡}

¡¡¡¡var results = mergeSort(l)

¡¡¡¡console.log(results)

¡¡¡¡*/

¡¡¡¡//¶ÑÅÅÐò

¡¡¡¡/*function heapSort(arr) {

¡¡¡¡var findRoot = function(arr, p, length) {

¡¡¡¡p = p || 0;

¡¡¡¡length = length || arr.length;

¡¡¡¡var self = arguments.callee;

¡¡¡¡var l = p * 2 + 1;

¡¡¡¡var r = (p + 1) * 2;

¡¡¡¡var left, right;

¡¡¡¡if (l < length) left = self(arr, l, length);

¡¡¡¡if (r < length) right = self(arr, r, length);

¡¡¡¡if (left > arr[p]) arr[p] = [left, arr[l] = arr[p]][0];

¡¡¡¡if (right > arr[p]) arr[p] = [right, arr[r] = arr[p]][0];

¡¡¡¡return arr[p];

¡¡¡¡};

¡¡¡¡for (var i = arr.length; i > 0; i--) {

¡¡¡¡findRoot(arr, 0, i);

¡¡¡¡arr[i - 1] = [arr[0], arr[0] = arr[i - 1]][0];

¡¡¡¡}

¡¡¡¡return arr;

¡¡¡¡}

¡¡¡¡var results = heapSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡//ÆæÅ¼ÅÅÁÐ

¡¡¡¡/*function oddEvenSort(arr) {

¡¡¡¡var swaped = true,

¡¡¡¡k = 0;

¡¡¡¡while (swaped) {

¡¡¡¡if (k > 0) swaped = false;

¡¡¡¡for (var i = k; i < arr.length - 1; i += 2) {

¡¡¡¡if (arr[i]>arr[i+1]) {

¡¡¡¡arr[i] = [ arr[i+1], arr[i+1]=arr[i] ][0];

¡¡¡¡swaped = true;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡k = [1, 0][k]

¡¡¡¡}

¡¡¡¡return arr;

¡¡¡¡}

¡¡¡¡var results = oddEvenSort(l)

¡¡¡¡console.log(results)*/

¡¡¡¡function oddEvenSort(arr) {

¡¡¡¡var swaped = true;

¡¡¡¡while (swaped) {

¡¡¡¡swaped = false;

¡¡¡¡for (var i = 0; i < arr.length; i += 2) {

¡¡¡¡if (arr[i] > arr[i + 1]) {

¡¡¡¡arr[i] = [arr[i + 1], arr[i + 1] = arr[i]][0];

¡¡¡¡swaped = true;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡for (var i = 1; i < arr.length; i += 2) {

¡¡¡¡if (arr[i] > arr[i + 1]) {

¡¡¡¡arr[i] = [arr[i + 1], arr[i + 1] = arr[i]][0];

¡¡¡¡swaped = true;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡return arr;

¡¡¡¡}

¡¡¡¡var results = oddEvenSort(l)

¡¡¡¡console.log(results)