| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 直接插入排序,希尔排序,选择排序,冒泡排序,快速排序,归并排序图解及代码 -> 正文阅读 |
|
[数据结构与算法]直接插入排序,希尔排序,选择排序,冒泡排序,快速排序,归并排序图解及代码 |
1.思路分析:第一步我们假定数组中的首元素是有序的,然后从第二个元素开始,先把该元素拷贝到temp中,我们用temp与该元素下标之前的元素进行比较如果该元素的值大于temp那么就让它向后移动一位,这样当遇到比temp小的元素时该元素后面的位置插入temp。 2.画图演示:3.代码描述:
1.思路分析:希尔排序又称缩小增量法,其基本思想就是先对改数据进行分组,分为gap组然后在对这gap组元素分别进行直接插入排序,然后缩小gap的值直到gap = 1时,对该组元素进行排序。(希尔排序是对直接插入排序的优化) 当gap > 1时都是预排序,目的是让数组更加接近有序。这样就会对整体而言产生优化的效果。 2.画图演示:?3.代码描述:
1.思路分析: 每一次从待排序的数据元素中选出最小的一个元素,存在序列的起始位置,直到全部待排序的数据元素排完。 2.画图演示: 3.代码描述:
1.思路分析:对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。 2.画图演示: 上图就是冒泡排序的第一趟排序,从首元素开始交换,最后得到一个未排序数据的最大值放于数据尾,那么下一趟排序只需交换到该最大值-1的位置处 3.代码描述:
1.思路分析: 快速排序是指通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行,以此达到整个数据变成有序序列。 2.画图演示: 第一次先以首元素为基准两个指针一个在首元素位置另外一个在末尾元素,right指针先往前走找到一个比temp小的元素A把A的值赋给left的元素值然后left指针往后走遇到一个比temp大的元素B,把B的值赋给A,然后再把temp的值赋给B。 3.代码描述:
1.思路分析: 归并排序用的更多的是解决在磁盘中的外排序问题,它采用分治算法,先使每个子序列有序,再使子序列段有序。若将两个有序表合并成一个有序表,称为二路归并。 2.画图演示: ? 3.代码描述:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 9:51:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |