insertionSort
插入排序
by Chris_Walter
JavaScript
class ArrayList{
constructor(){
this.array = [];
}
insert(item){
this.array.push(item);
}
toString(){
return this.array.join();
}
swap(A,B){
[ this.array[A], this.array[B]] = [ this.array[B], this.array[A]];
}
/*
insertionSort(){
let temp;
const length = this.array.length;
let j;
for(let i=1; i<length; i++){
j = i;
temp = this.array[i];
while(j>0 && this.array[j-1] > temp){
this.array[j] = this.array[j-1];
j--;
}
this.array[j] = temp;
}
}
*/
insertionSort(){
const length = this.array.length;
for(let i=0; i<length; i++){
for(let j=i-1; j>=0; j--){
if(this.array[j]>this.array[j+1]){
this.swap(j, j+1);
}
}
}
}
}
const nonSortedArray = (arraySize) => {
const array = new ArrayList();
for(let i=arraySize; i>0; i--){
array.insert(i);
}
console.log(`未使用插入排序前: ${array}`);
array.insertionSort();
console.log(`插入排序後: ${array}`);
return array;
}
nonSortedArray(4);