递归函数# 了解什么事递归 :在函数中调用自身就是递归函数 # 最大递归深度默认的最大深度为997 / 997 是python从内存角度出发做得限制# 能知道递归# 能知道递归的应用场景# 初始递归# 算法--二分查找算法# 三级菜单--递归实现# RecursionError: maximum r ...
分类:
编程语言 时间:
2020-07-26 00:35:10
阅读次数:
72
二分查找(英语:binary search),也叫折半查找(英语:half-interval search),是一种在有序数组中查找特定元素的搜索算法。所以,二分查找的前提是数组必须是有序的。
二分查找只适用顺序存储结构。为保持表的有序性,在顺序结构里插入和删除都必须移动大量的结点。因此,二分查找特... ...
分类:
编程语言 时间:
2020-07-26 00:08:45
阅读次数:
92
写几个函数:①输人10个职工的姓名和职工号;②按职工号由小到大顺序排序,姓名顺序也随之调整;③要求输人一个职工号,用折半查找法找出该职工的姓名,从主函数输人要查找的职工号,输出该职工姓名。 题目解析: 利用二分查找的关键在于数据一定要先有序,所以在查找前我们需要对数据进行排序。 代码示例: #inc ...
分类:
编程语言 时间:
2020-07-22 20:39:06
阅读次数:
98
内部排序:数据记录在内存中进行排序外部排序:待排序文件较大,需要访问外存常见的内部排序:插入排序(直接插入、折半插入、希尔排序)、交换排序(冒泡、快排)、选择排序(简单选择、堆排序)、归并排序(2路归并)、基数排序外排:归并排序(多路归并)、各种内排的性能比较:插入排序每次将一个待排序的记录按关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成每一轮能够确定一个最终位置的记录,某时刻的状态
分类:
编程语言 时间:
2020-07-19 16:23:30
阅读次数:
50
Java顺序查找、二分查找 查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低。 顺序查找 动图演示 详细代码 // 顺序查找 public static boolean search(int[] arrray, int key) { for (in ...
分类:
编程语言 时间:
2020-07-18 13:34:27
阅读次数:
57
顺序查找 算法思想 算法实现 算法优化 顺序查找的算法思想 顺序查找,又叫“线性查找”,通常用于线性表 从头到尾查 顺序查找的实现 typedef struct{ //查找表的数据结构(顺序表) ElemType *elem; //动态数组的基址 int TableLen; //表的长度 }SSTa ...
分类:
其他好文 时间:
2020-07-15 23:37:04
阅读次数:
97
递归(Recursion)算法思想递归算法是一种调用自身函数的算法(二叉树的许多性质在定义上就满足递归)。递归的基本性质就是函数调用,在处理问题的时候,递归往往是把一个大规模的问题不断地变小然后进行推导的过程。 举例:(汉诺塔问题)有三个塔 A、B、C,一开始的时候,在塔 A 上放着 n 个盘子,它 ...
分类:
编程语言 时间:
2020-07-14 00:42:37
阅读次数:
70
一、本章知识思维导图 二、第八章知识小结 1. 插入排序 (1) 直接插入排序 对于待排序列中的元素,在已排序列中顺序查找插入位置,将待排元素插入并移动。 (2)折半插入排序 基于直接插入排序,查找插入位置使用折半查找。 (3)希尔排序 将间隔步长d1的两个元素分为一组,组内进行直接插入排序;第二趟 ...
分类:
其他好文 时间:
2020-07-12 18:50:39
阅读次数:
52
排序 插入排序: 直接插入排序 时间复杂度O(n^2)(比较n^2/2+移动n^2/2) 折半插入排序:每次通过折半查找法找到插入的位置。这样会比直接插入中使用的顺序查找法快 但时间复杂度仍为O(n^2) 希尔排序:先将待排序列分组,对每组进行直接插入排序,增加数据量重新分组。 是不稳定的排序 交换 ...
分类:
其他好文 时间:
2020-07-11 17:05:56
阅读次数:
68
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
分类:
编程语言 时间:
2020-07-10 19:34:57
阅读次数:
72