zoukankan      html  css  js  c++  java
  • 容易忘记的冒泡排序,选择排序,插入排序,及冒泡排序的优化

    1.普通冒泡排序

    for(let i=0;i<arr.length-1;i++){

                for(let j=0;j<arr.length-1-i;j++){
                    if(arr[j]>arr[j+1]){
                        let t = arr[j]
                        arr[j] = arr[j+1]
                        arr[j+1] = t
                    }
                }
     }
     
    2.选择排序
     
    for(let i=0;i<arr.length;i++){
                let index = i
                for(let j=index+1;j<arr.length;j++){
                    if(arr[j]<arr[index]){
                        index = j
                    }
                    
                }
                if(index === i){
                    continue
                }else{
                    let t = arr[index]
                    arr[index] = arr[i]
                    arr[i] = t
                }
    }
     
    3.插入排序(也是这三种最简单的)
     
    for(let i=0;i<len;i++){
                for(let j=i+1;j>0;j--){
                    if(arr[j]<arr[j-1]){
                        let t = arr[j]
                        arr[j] = arr[j-1]
                        arr[j-1] = t
                    }else{
                        break
                    }
                }
    }
    4.冒泡排序优化
     
    var low = 0;
                var high = arr.length - 1; //设置变量的初始值
                var tmp, j;
                while (low < high) {
                    for (j = low; j < high;++j){
                        if (arr[j] > arr[j + 1]) {
                            tmp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = tmp;
                        }
                    }
                    --high
                    console.log(arr,low,high)
                    for (j = high; j > low;--j){
                        if (arr[j] < arr[j - 1]) {
                            tmp = arr[j];
                            arr[j] = arr[j - 1];
                            arr[j - 1] = tmp;
                        }
                    }
                    ++ low
    }
  • 相关阅读:
    2.NET Core设定数据库种子
    1.ASP.NET Core 中向 Razor Pages 应用添加模型
    获取文件夹目录下的文件信息
    dataGridView读写文本
    C# winform 启动外部程序
    netcore访问本地磁盘
    c#利用定时器自动备份数据库(mysql)
    c#mysql数据库备份还原
    Linux之旅(二)
    Linux之旅
  • 原文地址:https://www.cnblogs.com/MDGE/p/14677164.html
Copyright © 2011-2022 走看看