数据结构
Watch_dou
一名算法工程师,欢迎交流,由于比较忙,来不及回复评论,有事可以私戳我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
插排之希尔排序算法
步骤将数据分成d = n//2 组,每一趟希尔排序从元素d开始,采用直接插排。每个元素的比较和插入均在同一组内进行。更新d = d//2 。直到d=0时停止,当d=1时,相当于对近乎有序的结果进行一次完整的直接插排。图解图片来源复杂度时间复杂度:最好的情况,时间复杂度O(n)O(n)O(n)。最差的情况,时间复杂度(n2)(n^2)(n2)。平均的...原创 2020-03-25 12:59:08 · 484 阅读 · 0 评论 -
交排之冒泡排序算法
步骤从最后一个元素开始,进行相邻两元素比较,若前后元素是逆序,则实施交换。第一遍下来,排在第一个元素是最小的元素,称为有序区(也是全局有序区),其余的是无序区。之后,按照第一步的方法继续在其余的无序区进行比较、交换。直到所有元素都划分到有序区(即无序区为空)。改进:若元素在一趟冒泡的过程中未发生交换,则说明数据已经全部有序,就无需继续冒泡下去,直接输出即可。图解图片来源...原创 2020-03-25 12:56:49 · 447 阅读 · 0 评论 -
交排之快速排序算法
步骤选取基准:从数据中选择一个数作为基准值(pivot),一般选择最左边。分区操作:将数据中小于基准的全部放在pivot的左边位置,其余放在右边位置。该(分区)操作完成之后,原来的基准会在数据的中间某一位置。递归下去,得到有序结果。图解图片来源详情List = [5, 1, 3, 2, 4],s = 0, t = 4基准值tmp = 5,i=s,j=tj从右向左移动,...原创 2020-03-25 12:53:21 · 517 阅读 · 0 评论
分享