oddAndevenNumberSorted

奇數(odd)排在偶數(even)前

by Chris_Walter

JavaScript

class oddAndevenNumberSorted {
  constructor(){
    this.array = [];
  }
  toString(){
	  return this.array.join();
	}
  insert(max, min){
    this.array.push(generateRandomNumber(max, min));
  }
  swap(A, B){
    [this.array[A], this.array[B]] = [this.array[B], this.array[A]];
  }
  oddAndevenNumberMerge(){
   let length = this.array.length;
   for(let i=0; i<length - 1; i++){
     let evenIndex = i;
     for(let j=i; j<length; j++){
       if(this.array[evenIndex] % 2 === 0){
         evenIndex = j;
       }
     }
     if(i !== evenIndex){
       this.swap(i, evenIndex);
     }
   }
  }
}

const generateRandomNumber = (max, min) => {
  return Math.floor(Math.random()*max) + min;
}

const nonSortedArray = (max, min) => {
  const array = new oddAndevenNumberSorted();
  for(let i=0; i<50; i++){
    array.insert(max, min);
  }
  console.log(`未排序前${array}`);
  array.oddAndevenNumberMerge();
  console.log(`排序後${array}`);
}

nonSortedArray(50, 1);