IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 排序的算法详解 -> 正文阅读

[数据结构与算法]排序的算法详解

1.冒牌排序

? ? ? ? 概念:比较相邻的两个元素? 如果前者比后者大 就将他们的位置进行互换? 最后比较结束 最后的值一定是最大的值

?代码演示:

 <script>
        //1.冒泡排序f
        let arr=[0,1,5,4,7,20,55,66]

        for(let i=0;i<arr.length;i++){ //外层控制循环比较的趟数
            for(let j=i+1;j<arr.length-1;j++){//里层控制循环比较的趟数
                if(arr[j]>arr[j+1]){
                    // 如果前者大于后者  就定义一个临时变量  交换两个元素的位置
                    let temp=arr[j];
                    arr[j]=arr[j+1]
                    arr[j+1]=temp
                }
            }

        }
        console.log(arr);
    </script>

最后输出的结果如下

?2.选择排序

概念:依次找到元素的最小值? 将小值依次放在前进行排序??

代码演示:

 let arr1=[0,5,7,8,9,6,4,4,7,89,69]
        for(let i=0;i<arr1.length;i++){
            // 假设第i个为最小值
            let min=i;
            for(let j=i+1;j<arr1.length-1;j++){
                // 如果第j个大于第i个 就假设第j个为最小值 依次比较
                if(arr1[j]<arr1[min]){
                    min=j
                }
            }
            //比较结束 此时拿到了最小的索引 第一趟循环完毕 交换第一趟和最小值的数值
            let temp=arr1[i]
            arr1[i]=arr1[min]
            arr1[min]=temp
        }
        console.log(arr1);

? ? ? ? 总结:循环假设第一趟的i是最小值? ?在进行依次比较 如果前者小于后者 就将后者的索引存入最小值? ?循环结束 此时min里面存的就是最小值得索引? 将他与循环的趟数进行互换位置? 此时最小值就会依次排序?

3.插入排序

即构建有序序列,未排序数据依次从已排序数据按从后往前比较,插入到合适的位置。代码如下:

let arr3=[0,5,47,8,9,2515]
        for (let i=1;i<arr3.length;i++){
            // 定义前者
            let cur=i-1
            // 定义后者 用来保存当前的大值
            let temp=arr3[i]
            // while循环 逻辑与判断  一false全false  如果数组中的前者大于后者  就把后者的值赋值给前者  再让前者--继续比较
            while (cur>=0&&arr3[cur]>temp){
                arr3[cur+1]=arr3[cur]
                cur--;
            }
            //此时temp里存的是未赋值之前的值 比较结束将
            arr3[cur+1]=temp
        }
        console.log(arr3);

排序结果如下

?今天先更新到这里? ?后续会继续更新排序的算法详解

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:28:58  更:2021-10-06 12:31:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 10:05:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码