每天都在叫嚣自己会什么技术.docx
- 文档编号:8423172
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:1.38MB
每天都在叫嚣自己会什么技术.docx
《每天都在叫嚣自己会什么技术.docx》由会员分享,可在线阅读,更多相关《每天都在叫嚣自己会什么技术.docx(12页珍藏版)》请在冰豆网上搜索。
每天都在叫嚣自己会什么技术每天都在叫嚣自己会什么技术每天都在叫嚣自己会什么技术,什么框架,可否意识到你每天都在被这些新名词、新技术所迷惑,.NET、XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在云里雾里行走一样,只能看到眼前,不能看到更远的地方。
这些新鲜的技术掩盖了许多底层的原理,要想真正的学习技术还是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就很容易了。
要编写出优秀的代码同样要扎实的基础,如果排序和查找算法学的不好,怎么对程序的性能进行优化?
废话不多说,本文要介绍的这些排序算法就是基础中的基础,程序员必知!
1、直接插入排序
(1)基本思想:
在要排序的一组数中,假设前面(n-1)n=2个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。
如此反复循环,直到全部排好顺序。
(2)实例2、希尔排序(也称最小增量排序)
(1)基本思想:
算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。
当增量减到1时,进行直接插入排序后,排序完成。
(2)实例:
3、简单选择排序
(1)基本思想:
在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
(2)实例:
4、堆排序
(1)基本思想:
堆排序是一种树形选择排序,是对直接选择排序的有效改进。
堆的定义如下:
具有n个元素的序列(h1,h2,.,hn),当且仅当满足(hi=h2i,hi=2i+1)或(hi=h2i,hia,则由表的有序性可知,Rmid.key右侧的值都大于a,所以等于a的关键字如果存在,必然在Rmid.key左边的表中。
这时high=mid-1如果Rmid.keya,则等于a的关键字如果存在,必然在Rmid.key右边的表中。
这时low=mid如果Rmid.key=a,则查找成功。
(3)下一次查找针对新的查找区间,重复步骤
(1)和
(2)(4)在查找过程中,low逐步增加,high逐步减少,如果highlow,则查找失败。
平均查找长度=Log2(n+1)-1注:
虽然二分法查找的效率高,但是要将表按关键字排序。
而排序本身是一种很费时的运算,所以二分法比较适用于顺序存储结构。
为保持表的有序性,在顺序结构中插入和删除都必须移动大量的结点。
因此,二分查找特别适用于那种一经建立就很少改动而又经常需要查找的线性表。
三、分块查找的基本思想:
二分查找表使分块有序的线性表和索引表(抽取各块中的最大关键字及其起始位置构成索引表)组成,由于表是分块有序的,所以索引表是一个递增有序表,因此采用顺序或二分查找索引表,以确定待查结点在哪一块,由于块内无序,只能用顺序查找。
设表共n个结点,分b块,s=n/b(分块查找索引表)平均查找长度=Log2(n/s+1)+s/2(顺序查找索引表)平均查找长度=(S2+2S+n)/(2S)注:
分块查找的优点是在表中插入或删除一个记录时,只要找到该记录所属块,就在该块中进行插入或删除运算(因块内无序,所以不需要大量移动记录)。
它主要代价是增加一个辅助数组的存储控件和将初始表分块排序的运算。
它的性能介于顺序查找和二分查找之间。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 每天 叫嚣 自己 什么 技术