冒泡排序:在未排序的数组中从首个元素下标开始,依次比较其元素的大小(按从小到大的顺序),如果前一个元素值大于后一个元素值,就将其元素值进行交换,如果前一个元素值小于后一个元素值,将不进行处理。执行到最后数组的元素就以从小到大的顺序依次排列了。
具体代码:
console.log('冒泡排序');
var array=[3,5,2,6,1,4];
for(var i=0;i<array.length-1;i++)
{
for(j=i+1;j<array.length;j++)
if(array[i]>array[j]){
array[i]=array[i]+array[j];
array[j]=array[i]-array[j];
array[i]=array[i]-array[j];
}
}
console.log(array);
执行结果:
选择排序:在未排序的数组中,将第一个元素值看为整个数组的最小(或者最大)值,将这个最小(最大)值与数组的每一个值进行比较,如果这个最小值大于数组的某一个值(最大值小于数组的某一个值),则将这个值的下标赋值给最小(最大)值的下标,最后判断最小(最大)值的下标是否为第一个,如果是就不进行操作,反之则交换那两个值。下一次循环就将第二个值设为最小或(最大)值,对前一个值就不进行操作了,这样的话每一轮都能将数组的最小(或最大)值找出来,并且从第一个下标开始依次存放值。这样就形成了一个按照从小到大(从大到小)的顺序的数组了。
具体代码:
console.log('选择排序');
var array1=[12,3,24,45,1,9,29,18];
for(var i=0;i<array1.length-1;i++){
var min=i;
for(var j=i+1;j<array1.length;j++){
if(array1[min]>array1[j]){
min=j;
}
}
if(min != i){
array1[min]=array1[min]+array1[i];
array1[i]=array1[min]-array1[i];
array1[min]=array1[min]-array1[i];
}
}
console.log(array1);
执行结果: