冒泡:
// 数组的排序: // sort() // 冒泡排序:两两比较,大的放后面 // 0-1,1-2,2-3,3-4 0~length-1-0 // 0-1,1-2,2-3 0~length-1-1 // 0-1,1-2 0~length-1-2 // 0-1 0~length-1-3 var arr = [45,3,78,2,9]; //制定数组 function bubble(a){ for(var i=0;i<a.length-1;i++){ //遍历数组 var s; for(var j=0;j<a.length-i-1;j++){ //需要比较的次数 if(a[j]>a[j+1]){ s=a[j+1] a[j+1]=a[j]; a[j]=s } } } return a; } console.log(bubble(arr))
选择:
1 // 选择排序:取第一位和后面所有做比较,拿到最小的,放在第一位 2 // 1.确定执行次数,和比较方式 3 // length-1 4 // 0-1,0-2,0-3,0-4 0~length-1 5 // 1-2,1-3,1-4 1~length-1 6 // 2-3,2-4 2~length-1 7 // 3-4 3~length-1 8 var arr = [45,3,78,2,9];//制定一个数组 9 for(var i=0;i<arr.length;i++){ //遍历所有数组 10 var min=arr[i]; //假定最小值为a[i] 11 var minIndex=i; //最小值的索引是i 12 for(var j=i+1;j<arr.length;j++){ //每行需要排序的次数 。 13 if(min>arr[j]){ //假定的最小值逐个相比 14 min=arr[j]; //真实的最小值 。相当于a[i]与a[i+1]比 15 minIndex=j; //真实的最小值索引 16 } 17 } 18 arr[minIndex]=arr[i] //因为要发生交换,将假定的最小值放到真实的最小值位置。//之所以要放在循环外面,是要等一个都比完了。 19 arr[i]=min; //真实的最小值放到假定的最小值位置,i也是从头开始的所以最小的肯定在最前面 20 //上面两行代码表示两个数字位置发生了交换 21 } 22 console.log(arr)