数据结构与算法的JavaScript描述——排序算法(1)
说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。
基本排序算法
1、冒泡排序
function bubbleSort(){
var numEle=this.dataStore.length;
var temp;
for(var outer=numEle;outer>=2;outer--){
for(var inner=0;inner<outer-1;inner++){
if(this.dataStore[inner]<this.dataStore[inner+1]){
swap(this.dataStore,inner,inner+1);
}
}
}
}
2、选择排序
function selectSort(){
var min,temp;
for(var outer=0;outer<=this.dataStore.length-2;outer++){
min=outer;
for(var inner=outer+1;inner<=this.dataStore.length-1;inner++){
if(this.dataStore[min]>this.dataStore[inner]){
min=inner
}
swap(this.dataStore,outer,min);
}
}
}
3、插入排序
//插入排序有两个循环。外循环将数组元素挨个移动,而内循环则对外循环中选中的元素及它后面的那个元素进行比较。
//如果外循环中选中的元素比内循环中选中的元素小,那么数组元素会向右移动,为内循环中的这个元素腾出位置。
function insertSort(){
var temp,inner;
for(var outer=1;outer<=this.dataStore.length-1;outer++){
temp=this.dataStore[outer];
inner=outer;
while(inner>0 && (this.dataStore[inner-1]>=temp)){
this.dataStore[inner]=this.dataStore[inner-1];
--inner;
}
this.dataStore[inner]=temp;
}
}