【排序算法的JavaScript实现】_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 【排序算法的JavaScript实现】

【排序算法的JavaScript实现】

 2015/4/27 15:13:29  melorogee  程序员俱乐部  我要评论(0)
  • 摘要:冒泡排序letcompare=(n1,n2)=>n1-n2;letbubbleSort=(arr,cmp=compare)=>{for(leti=0;i<arr.length;i++){for(letj=i;j>0;j--){if(cmp(arr[j],arr[j-1])<0){[arr[j],arr[j-1]]=[arr[j-1],arr[j]];}}}returnarr;};插入排序letinsertionSort=(arr)=>{for(leti=0
  • 标签:实现 Java 算法 javascript

冒泡排序

  1. let compare = (n1, n2) => n1 - n2;
  • let bubbleSort = (arr, cmp = compare) => {
  • ??for (let i = 0; i < arr.length; i++) {
  • ? ? for (let j = i; j > 0; j--) {
  • ? ?? ?if (cmp(arr[j], arr[j - 1]) < 0) {
  • ? ?? ???[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
  • ? ?? ?}
  • ? ? }
  • ??}
  • ??return arr;
  • };

?

插入排序

  1. let insertionSort = (arr) => {
  • ? ? for (let i = 0; i < a.length; i++) {
  • ? ?? ???let toCmp = arr[i];
  • ? ?? ???for (let j = i; j > 0 && toCmp < a[j - 1]; j--)
  • ? ?? ?? ?? ?arr[j] = a[j - 1];
  • ? ?? ???arr[j] = toCmp;
  • ? ? }
  • ? ? return arr;
  • }

?

选择排序

  1. var selectionSort = function (arr) {
  • ??let i,m,j;
  • ??for (i = -1; ++i < a.length;) {
  • ? ? for (m = j = i; ++j < a.length;) {
  • ? ?? ?if (arr[m] > arr[j]) m = j;
  • ? ? }
  • ? ? [arr[m], arr[i]] = [arr[i], arr[m]];
  • }
  • return arr;
  • }

?

归并排序

  1. let mergeSort = (arr) => {
  • ??if (arr.length < 2) return arr;
  • ??let middle = parseInt(arr.length / 2),
  • ??left = arr.slice(0, middle),
  • ??right = arr.slice(middle);
  • ??return merge(mergeSort(left), mergeSort(right));
  • }
  • let merge = (left, right) => {
  • ??let result = [];
  • ??while (left.length && right.length) {
  • ? ? left[0] <= right[0] ?
  • ? ? result.push(left.shift()) :
  • ? ? result.push(right.shift());
  • ??}
  • ??while (left.length) result.push(left.shift());
  • ??while (right.length) result.push(right.shift());
  • ??return result;
  • }

?

快速排序

  1. let quicksort = function(arr) {
  • ??if(arr.length <= 1) return arr;
  • ??let pivot = Math.floor((arr.length -1)/2);
  • ??let val = arr[pivot], less = [], more = [];
  • ??arr.splice(pivot, 1);
  • ??arr.forEach(function(e,i,a){
  • ? ? e < val ? less.push(e) : more.push(e);
  • ??});
  • ??return (quicksort(less)).concat([val],quicksort(more))
  • }??

?

更多java,java面试题,java学习? http://techfoxbbs.com

?

上一篇: Builder模式POJO 下一篇: 没有下一篇了!
发表评论
用户名: 匿名