JavaScript 冒泡排序和选择排序的实现代码
废话不多说了,直接给大家贴代码了,具体代码如下所述:
vararray=[1,2,3,4,5];//--->服务
//效率--->针对一个有序的数组效率最高
//标志truefalse
for(varj=0;j<array.length-1;j++){
//-j每次排序完成之后后面减少比较的次数
varisTrue=true;//如果数组本身就是升序,则直接输出
for(vari=0;i<array.length-j-1;i++){
if(array[i]>array[i+1])
{
vartemp=array[i];
array[i]=array[i+1];
array[i+1]=temp;
isTrue=false;
}
}
document.write(array);
if(isTrue){
break;
}
}
vararray=[12,34,4,6,20];
//length-1j=0-length-1
for(varj=0;j<array.length-1;j++){
varmin=array[j];//133443455
varminIndex=j;
for(vari=j+1;i<array.length;i++){
if(array[i]<min){
min=array[i];
minIndex=i;
}
}
if(minIndex!=j){
vartemp=array[minIndex];
array[minIndex]=array[j];
array[j]=temp;
}
}
下面在看下Javascript实现三种排序:冒泡排序、选择排序、插入排序的代码
<scripttype="text/javascript">
vara;
a=[66,53,11,5,4,3,2,1];
/*冒泡排序*/
(functionmaopaopaixu(){
for(vari=0;i<a.length-1;i++){//比较的次数是length-1
for(varj=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
vartmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
alert(a);
})();
a=[66,53,11,5,4,3,2,1];
/*选择排序*/
(functionxuanzepaixu(){
varmin/*最小项的索引*/,tmp;
for(varout=0;out<a.length-1;out++){//比较的次数是length-1
min=out;
for(varinner=out+1;inner<a.length;inner++){//这里是a.length,不是a.lenght-1,因为后者会导致右数第2项没法参与排序。
if(a[inner]<a[min]){
min=inner;
}
//将最小的项移动到左侧
tmp=a[out];
a[out]=a[min]
a[min]=tmp;
}
}
alert(a);
})();
a=[66,53,11,5,4,3,2,1];
/*插入排序*/
(functioncharupaixu(){
for(varout=1;out<a.length;out++){
vartmp=a[out];
varinner=out;
while(a[inner-1]>tmp){
a[inner]=a[inner-1];
--inner;
}
a[inner]=tmp;
}
alert(a);
})();
</script>
以上所述是小编给大家介绍的JavaScript冒泡排序和选择排序的实现代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家!