1.使用数组中的方法sort进行排序

image.png

  1. var arr=[10,30,20,50,15];
  2. arr.sort(function(a,b){
  3. return a-b;
  4. })

2.冒泡排序

1)冒泡排序实现逻辑

2.png

2)冒泡实现办法 两个循环

  1. var arr=[16,8,134,25,1];
  2. function bubbleSort(arr){
  3. // 控制多少轮[每一轮都是把当最大值放在末尾]
  4. for(var i=0;i<arr.length-1;i++){
  5. var flag=false;//记录需不需要比较
  6. // 控制每一轮比较多少次 【从数组第一项开始,两两比较】
  7. for(var j=0;j<arr.length-1-i;j++){
  8. //当前项大于后一项,则让两者交换位置
  9. if(arr[j]>arr[j+1]){
  10. var temp=arr[j];
  11. arr[j]=arr[j+1];
  12. arr[j+1]=temp;
  13. flag=true;
  14. }
  15. }
  16. //优化项
  17. if(!flag) break; //如果当前这一轮,两两比较了一圈,都没有发现需要交换位置的,说明现在的数组就是排好序了,则直接结束循环即可,没必要在比较了
  18. }
  19. return arr;
  20. }
  21. console.log(bubbleSort(arr));
  1. var arr = [8, 16, 25, 34, 7, 134, 2, 1, 0];
  2. function bubbleSort(arr) {
  3. var flag = false;//看是否循环
  4. //控制比较多少轮,每一轮都是把最大值放在末尾
  5. for (var i = 0; i < arr.length - 1; i++) {
  6. //控制每一轮比较多少次,从数组第一项开始,两两比较
  7. for (var j = 0; j < arr.length - 1 - i; j++) {
  8. var a=arr[j];//34
  9. var b=arr[j + 1];//7
  10. if (arr[j] > arr[j + 1]) {
  11. arr[j]=arr[j]+arr[j+1];//41
  12. arr[j + 1]=arr[j]-arr[j+1];
  13. arr[j]=arr[j]-arr[j + 1];
  14. flag = true;
  15. }
  16. }
  17. //如果当前这一轮,两两比较了一圈,都没有发现需要交换位置的,说明现在的数组就是排好序的,则直接结束循环即可,没必要再比较了
  18. if (!flag) break;
  19. }
  20. return arr;
  21. }
  22. console.log(bubbleSort(arr));

解构赋值

  1. var ary = [100, 23, 5, 9, 33, 2]
  2. for (var i = 0; i < ary.length - 1; i++) {
  3. var n = true;
  4. for (var j = 0; j < ary.length - 1 - i; j++) {
  5. if (ary[j] > ary[j + 1]) {
  6. [ary[j], ary[j + 1]] = [ary[j + 1], ary[j]];
  7. n = false;
  8. }
  9. }
  10. if (isNaN(n)) continue;
  11. }
  12. console.log(ary);