数据结构与算法
数据结构与算法详解
九瓜
这个作者很懒,什么都没留下…
展开
-
数据结构:归并排序算法,详解,图解 -- 数据结构算法集
归并排序算法归并排序算法讲的是先分后合:总的来说归并排序就是把原序列都拆分为单个的元素,然后从单个的元素开始进行按照大小合并到中间list中,排序完成。这里的拆分比较容易,重点讲解合并合并的步骤:首先创建一个用于存放排好序的列表result ,然后比较两个list中首元素的大小,把较小的元素放到列表result中,并且在序列中删除该元素,以防止影响后面判断 ,重复步骤2、3操作,直到有一个list为空,将剩下不为空的list合并到列表result后面,result就是合并、排序后的列表原创 2020-06-12 14:23:50 · 920 阅读 · 0 评论 -
数据结构:堆排序算法,详解,图解 -- 数据结构算法集
堆排序算法折半/二分查找算法冒泡排序算法插入排序算法选择排序算法快速排序算法希尔排序算法1、堆定义:堆被看作是一个完全二叉树的数组对象,满足条件:是一个完全二叉树,每个小堆的父节点总是大于等于或者小于等于子节点。大根堆:根节点最大的堆,升序排列构建大根堆。小根堆:根节点最小的堆,降序排列构建小根堆。大根堆和小根堆图:蓝色的数字是该元素在list列表中的下标位置这里以升序的堆排列作为讲解,2、基本思想及步骤:首先构建堆,将一个无序列表构建成一个大根堆。将顶端的原创 2020-06-10 11:49:35 · 1026 阅读 · 0 评论 -
数据结构:希尔排序算法,详解,图解 -- 数据结构算法集
希尔排序算法折半/二分查找算法冒泡排序算法插入排序算法选择排序算法快速排序算法希尔排序算法希尔排序算法是在插入排序的基础上进行的改进,比插入排序更高效,是插入排序的一种,又叫‘缩小增量排序’。希尔排序是把数组按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的元素越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止对比插入排序希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快;当元素原创 2020-06-09 10:53:34 · 2103 阅读 · 0 评论 -
数据结构:快速排序算法,详解,图解 -- 数据结构算法集
快速排序算法折半/二分查找算法冒泡排序算法插入排序算法选择排序算法这里是从小到大排列原理:从待排序序列中取一个元素为基准(任意选取,可以取开头、结尾或者中间元素),把剩下元素依次与基准元素比较,大于基准元素放在右边,小于基准元素放在左边,这样就能得到基准元素在原序列中的位置,再把左右的元素序列进行重复上面操作(递归),即可完成排序。图解详细流程快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于原创 2020-06-08 11:40:30 · 2853 阅读 · 0 评论 -
数据结构:选择排序算法,详解,图解 -- 数据结构算法集
选择排序算法冒泡排序算法折半/二分查找算法插入排序算法选择排序:是最简单直观的排序算法,选择排序是不稳定的排序方法,具体见:选择排序工作原理:第一次从所有元素中选出最小元素,放到list最开始位置,第二次从剩下元素中选出最小元素,放到list第二个位置,......依次类推,执行n-1次图解python2.7.5实现代码# _*_ encoding:utf-8_*_# 选择排序def select_sort(lists): # 取前n-1个元素, for i原创 2020-06-05 17:12:36 · 851 阅读 · 0 评论 -
数据结构:插入排序算法,详解,图解 -- 数据结构算法集
插入排序算法冒泡排序算法折半/二分查找算法插入排序:一般称为直接插入排序,对于少量的元素排序,比较高效,这里使用的顺序是正序,从小到大排列,基本思想:每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到插完所有元素为止原理:‘待插入元素’依次与前面的元素比较插入到合适的位置(这里比较是从‘待插入元素’前面的元素开始比较,依次往前比较)思路:首先插入排序有两层循环第一层循环从第二个元素开始,用来控制‘待插入元素’的位置,第二层循环,里的元素是‘待插入元素’以及前面的所有原创 2020-06-05 15:50:38 · 1838 阅读 · 0 评论 -
数据结构:冒泡排序算法,图解,详解 -- 数据结构算法集
冒泡算法这里是按照从小到大排序,从大到小排序原理相同,判断不同。原理:依次比较相邻两个元素大小,大的放在右边,小的放在左边。思路:第一次排序:比较第一个元素和第二个的大小,小的放在左边,大的放在右边 比较第二个元素和第三个的大小,小的放在左边,大的放在右边 ...... 最后结果,最后一位一定是最大的元素。第二次排序:比较第一个元素和第二个的大小,小的放在左边,大的放在右边 比较第二个元素和第三个的大小,小的放在左边,大的放在右边 ...... 最后结果,倒数第二个数是第原创 2020-06-05 14:26:34 · 2071 阅读 · 0 评论 -
数据结构:折半查找/二分查找算法,详解,图解 -- 数据结构算法集
给出一个list和一个元素,判断出list中是否存在该元素浅短理解:折半查找算法是对于有序的序列而言的,每次查找后折半,大概缩短了一半的查找区间,是一种效率较高的查找算法。要求:list必须是顺序结构,且按照关键词大小进行有序排列。思路:在有序序列中查找元素,每次取序列中间的元素,如果与要查找元素相等,程序结束;如果查找元素大于中间元素,则取中间元素后面的序列再进行如上的查找;如果查找元素小于中间元素,则取中间元素前面的序列再进行如上的查找;直到找到元素相等,查找成功,或者序列为空,查找失原创 2020-06-05 10:24:48 · 8077 阅读 · 0 评论