矩阵第二节
来源:互联网 发布:本地pubmed数据库 编辑:程序博客网 时间:2024/06/15 05:11
二分查找
思想
在一个含有X个有序的元素序列中,查找一个元素n。第一步,判断中n跟X/2的元素比较。如果小了,则继续跟X/4比较。如果大了,则跟3/4X比较。直到找到元素n。时间复杂度为log2X。
public class BinarySearch{ int low; int hight; int length; public int GetIndexWithBinarySearch(int num,List<Integer> list) { length=list.size(); low=0; hight=list.size(); int index=Find(low,hight,num,list); return index; } int Find(int low,int heiht,int num,List<Integer> list) { int index=(low+hight)/2; if(num==list.get(index)) return index; if(hight-low<=1&&num!=list.get(index)) return -1; if(num>list.get(index)) { low=index; } else { hight=index; } return Find(low,hight,num,list); }
时间复杂度O
大O表示法指出了算法有多快.
假设列表包含n个元素。简单查找需要检查每个元素,因此需要执行n次操作。使用大O表示法,这个运行时间为O(n)
经常会遇到的5种大O运行时间。
O(log n),也叫对数时间,这样的算法包括二分查找。
O(n),也叫线性时间,这样的算法包括简单查找。
O(n * log n),这样的算法包括第4章将介绍的快速排序——一种速度较快的排序算法。
O(n2),这样的算法包括第2章将介绍的选择排序——一种速度较慢的排序算法。
O(n!),这样的算法包括接下来将介绍的旅行商问题的解决方案——一种非常慢的算法。
旅行商问题
有一位旅行商。 他需要前往5个城市。这位旅行商要前往这5个城市,同时要确保旅程最短。为此,可考虑 前往这些城市的各种可能顺序。对于每种顺序,他都计算总旅程,再挑选出旅程最短的路线。5个城市有120种不同的排列方 式。因此,在涉及5个城市时,解决这个问题需要执行120次操作。涉及6个城市时,需要执行720 次操作(有720种不同的排列方式)。涉及7个城市时,需要执行5040次操作!推而广之,涉及n个城市时,需要执行n!(n的阶乘)次操作才能计算出结果。因此运行时间 为O(n!),即阶乘时间。
阅读全文
0 0
- 矩阵第二节
- 矩阵论 第二章 矩阵的分解
- 第二层第二题:矩阵变换
- 螺旋矩阵之第二篇
- 线性代数复习 第二章 矩阵
- 矩阵第二章总结笔记
- 线性代数:第二章 矩阵及其运算:逆矩阵、分块矩阵
- 第二章 λ-矩阵与矩阵的 Jordan 标准形
- 003 第二讲 矩阵之伴随矩阵、矩阵运算、线性方程组的矩阵表示
- osg学习第二篇:矩阵(二)
- MATLAB——第二天 矩阵
- 【蓝桥第二周】矩阵最大和
- dp专题 第二题 最大子矩阵
- tensorflow第二坑-矩阵向量相乘
- 第二章 --- 第二节
- 【第二章 第二节】
- MATLAB 小知识 第二篇 矩阵运算1
- MATLAB 小知识 第二篇 矩阵运算2
- [BZOJ2425][HAOI2010]计数(组合数学)
- ACM中国国家集训队论文集目录(1999-2009)
- Java中getResourceAsStream的用法
- JPEG 推荐的DC和AC系数的huffman(哈夫曼)码表
- 洛谷P1747 好奇怪的游戏(真的很奇怪哦~)
- 矩阵第二节
- 我的c语言自学之路
- Deque容器
- 迭代器模式
- Nginx安装与启动
- 组合数个数
- 第8章 中医证型关联规则挖掘
- linux执行命令时报错:permission denied
- 网络编程 UDP通信的过程 TCP通信过程 多线程文件上传