主键是确定数据库中的表的记录的唯一标识字段,可以是表中的一个字段 , 也可以是表中的多个字段组成的 。一旦确定为主键,则该字段不可为空也不可以重复 。比如学生表中的学号就可以定义成该表的字段
外键的定义是相对于主键而言的,比如另有一张成绩表,表中也出现了学生表中的对应学号字段,则相对于学生表,学号就是成绩表的外键
String和StringBuffer的区别
STRING的长度是不可变的,STRINGBUFFER的长度是可变的 。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String , 那么使用StringBuffer的toString()方法
try{}catch(){}finally{}结构,try{}内出现异常,try{}内剩下尚未执行的代码还执行吗,finally{}内的代码呢?finally{}后面的代码呢
执行 finally{}内的代码最后执行
排序算法
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大?。?递增或递减的排列起来的操作 。
分类
在计算机科学所使用的排序算法通常被分类为:
计算的复杂度(最差、平均、和最好表现),依据串列(list)的大?。╪) 。一般而言,好的表现是O 。(n log n) , 且坏的行为是Ω(n2) 。对於一个排序理想的表现是O(n) 。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要Ω(n log n) 。
记忆体使用量(以及其他电脑资源的使用)
稳定度:稳定排序算法会依照相等的关键(换言之就是值)维持纪录的相对次序 。也就是一个排序算法是稳定的,就是当有两个有相等关键的纪录R和S,且在原本的串列中R出现在S之前 , 在排序过的串列中R也将会是在S之前 。
一般的方法:插入、交换、选择、合并等等 。交换排序包含冒泡排序(bubble sort)和快速排序(quicksort) 。选择排序包含shaker排序和堆排序(heapsort) 。
当相等的元素是无法分辨的,比如像是整数,稳定度并不是一个问题 。然而,假设以下的数对将要以他们的第一个数字来排序 。
(4, 1) (3, 1) (3, 7) (5, 6)
在这个状况下,有可能产生两种不同的结果,一个是依照相等的键值维持相对的次序 , 而另外一个则没有:
(3, 1) (3, 7) (4, 1) (5, 6) (维持次序)
(3, 7) (3, 1) (4, 1) (5, 6) (次序被改变)
不稳定排序算法可能会在相等的键值中改变纪录的相对次序,但是稳定排序算法从来不会如此 。不稳定排序算法可以被特别地时作为稳定 。作这件事情的一个方式是人工扩充键值的比较,如此在其他方面相同键值的两个物件间之比较,就会被决定使用在原先资料次序中的条目,当作一个同分决赛 。然而,要记住这种次序通常牵涉到额外的空间负担 。
排列算法列表
在这个表格中,n是要被排序的纪录数量以及k是不同键值的数量 。
稳定的
冒泡排序(bubble sort) — O(n2)
鸡尾酒排序 (Cocktail sort, 双向的冒泡排序) — O(n2)
插入排序 (insertion sort)— O(n2)
桶排序 (bucket sort)— O(n); 需要 O(k) 额外 记忆体
计数排序 (counting sort) — O(n+k); 需要 O(n+k) 额外 记忆体
归并排序 (merge sort)— O(n log n); 需要 O(n) 额外记忆体
原地归并排序 — O(n2)
二叉树排序 (Binary tree sort) — O(n log n); 需要 O(n) 额外记忆体
鸽巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 额外记忆体
基数排序 (radix sort)— O(n·k); 需要 O(n) 额外记忆体
Gnome sort — O(n2)
Library sort — O(n log n) with high probability, 需要 (1+ε)n 额外记忆体
不稳定
选择排序 (selection sort)— O(n2)
推荐阅读
- html5具有那些优势,html5有哪些新特性和优点
- 电脑显卡怎么检查新旧,电脑显卡怎么看新旧
- c语言时间比较的函数 c语言时间比较的函数怎么写
- 表单提价必填的提示jquery,表单提交是什么意思
- 歪歪怎么直播视频号,歪歪如何直播游戏
- php分页获取不同数据库 php通用分页类
- linux筛选文件夹命令,筛选Linux进程的命令
- ppt怎么制作坐标,ppt怎么制作坐标图表
- 母婴科普直播视频素材,母婴直播主题吸引人话题