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冒泡排序和选择排序的实现代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家!