
算法
七天快乐
这个作者很懒,什么都没留下…
展开
-
day20
文章目录1. 排序算法1.1 冒泡排序1.2 插入排序1.3 快速排序2. 链表2.1 节点链2.2 链表3. 作业3. 作业1. 排序算法1.1 冒泡排序冒泡重复的遍历序列,一次完成相邻两个元素的比较,如果不符合规则-进行位置交换遍历这个序列直到没有元素可以进行交换代表冒泡排序完成。List = [1,10,9,2,3]# 第一轮排序:第一个值 第二个值。 比较较大值-放到序列最后位置List[0],List[1] #不重新排序List[1],List[2] #颠倒次序'''原创 2020-08-21 19:51:50 · 124 阅读 · 0 评论 -
Java排序
文章目录Java排序1.基础排序1.1冒泡排序1.2选择排序1.3 插入排序2.高级排序2.1希尔排序2.2归并排序2.3快速排序2.4堆排序Java排序1.基础排序1.1冒泡排序排序原理/** 1.比较相连的元素,如果前一个元素比后一个大的话,就交换两个元素;* 2.对每一对相连的元素做同样的操作,从一开始的第一对元素到结尾的最后*一对元素,最终的位置就是最大元素。*/实例package com.atrx.algorithm.sort;public class Bubb原创 2020-08-09 21:07:13 · 119 阅读 · 0 评论 -
查找
算法查找线性查找(顺序查找)基本思想:从数据的一端开始查找,比较元素是否与查找元素相同,若有则查找成功,直到另一端结束。既适用于线性表的顺序存储结构,也适用于线性表的链式存储结构,但查找效率低。二分查找(折半查找)基本思想:将待查找元素与序列中间值进行比较,若相等则找到,大于中值,则可以在右半边继续开始同样的查找工作,小于中值,则在左边。分块查找(索引顺序查找)基本思想:将数据进行分块,并用一个索引不表存储相关信息;将数据分成若干块,其中前一块的最大值不能大于后一块的最小值,用一个索引表原创 2020-07-01 18:21:17 · 113 阅读 · 0 评论 -
查找
算法查找线性查找(顺序查找)基本思想:从数据的一端开始查找,比较元素是否与查找元素相同,若有则查找成功,直到另一端结束。既适用于线性表的顺序存储结构,也适用于线性表的链式存储结构,但查找效率较低。#python实现def sequential_search(nums, key): for i in range(0,len(nums)): if nums[i] == key: return i return False二分查找(折半查找)原创 2020-07-01 18:17:05 · 101 阅读 · 0 评论 -
算法
算法:排序算法:堆排序:堆排序(Heap sort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点,即小根堆(大根堆)。#python3实现def big_endian(arr,start,end): root=start child=root*2+1 #表示左孩子 while child<=end: #孩子比最后一个节点还大,也就意味着原创 2020-06-30 14:27:48 · 130 阅读 · 0 评论 -
算法
算法:排序算法:归并排序:归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置。第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置。重复步骤3直到某一指针超出序列尾,原创 2020-06-30 14:10:12 · 90 阅读 · 0 评论 -
算法
算法:排序算法:冒泡排序:冒泡排序(Bobble sort)算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。#python3实现def bubble_sort(nums):for i in range(0,len(nums)-1): #外层循环次数for原创 2020-06-29 17:41:27 · 160 阅读 · 0 评论