1:冒泡排序:
就像水中的气泡,从下到上依次增大。将一个数组有序排列,
重要思想:他是两个相邻的数依次比较
var a=[1,3,5,4,6,2];
for(var i=0;i<a.length-1;i++){ //控制循环次数
for(var j=0;j<a.length-1-i;j++){ //后面减去已经排好了的数
if(a[j]>a[j+1]){ //交换
var temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
console.log(a);
2:选择排序
重要思想:将一个数依次与其他数比较
<script>
var a=[1,6,5,2,3,4];
for(var i=0;i<a.length-1;i++){ //比较次数
for(var j=0;j<a.length-1-i;j++){ //防止下标越界
if(a[i]>a[j+1+i]){ //将排好了的排除
var temp=a[i];
a[i]=a[i+j+1];
a[i+j+1]=temp;
}
}
}
console.log(a);
</script>
3:二分法
重要思想:在已经排列好了的数组中,找出自己需要的值
<script>
var a=[1,2,3,4,5,6];
var sy=-1;
terget=6;
min=0;
var mid;
max=a.length-1;
while(min<=max){
mid=Math.floor((max+min)/2);
if(a[mid]==terget){
sy=mid;
break;
}
else if(terget>a[mid]){
min=mid+1;
}
else{
max=mid-1;
}
}
console.log(sy);
</script>
4:插入排序
重要思想:和打扑克牌一样,拿起来的牌,插入到已经排序好的牌中
<script>
var a=[1,5,4,2,3,6];
for(var i=0;i<a.length;i++){
for(var j=i;j>0;j--){
if(a[j]<a[j-1]){
var temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
else{
break;
}
}
}
console.log(a);
</script>