《小灰的算法之旅》笔记
记录《小灰的算法之旅》,提炼出精华,加上自己的理解,方便自己复习时候快速回顾,同时也和大家一起分享我自己的见解。
叫大白
github上有未与CSDN同步的项目。github主页:https://github.com/gaozw1
展开
-
Java代码【快速排序】详解
目录概要原理双边循环法双边循环法代码实现单边循环法单边循环法代码实现非递归实现????个人总结概要快速排序是一种交换排序,通过元素之间的比较和交换位置来达到排序目的。原理在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成两部分。这种思路叫做:分治法代码中方法说明:quickSort方法通过递归方式,实现分而治之的思想。partition方法实现元素交换,让数列中的元素依据自身大小,分别交换到基准元素的左右两边双边循环法原创 2020-07-22 18:22:05 · 504 阅读 · 0 评论 -
Java代码【冒泡排序】详解及优化
概念冒泡排序是一种基础的交换排序。像汽水中的气泡一样向上浮动。举例58639217将8个数字组成的数列按照从小到大顺序排序。说明相邻元素两两比较,元素大的放到右边,值相等不交换。过程如下:每一轮都会遍历所有元素,进行两两比较,所以说一共需要遍历7轮(元素数量-1),平均时间复杂度是O(n2)。第一版代码实现import java.util.Arrays;public class bubbleSort { public static void sor原创 2020-06-28 01:33:34 · 438 阅读 · 0 评论 -
内部排序算法目录
排序概念根据排序时数据所占用存储器的不同,可将排序分为两类内部排序和外部排序。内部排序:整个排序过程完全在内存中进行。外部排序:待排序记录数据量太大,内存无法容纳全部数据,排序需借助外部存储设备才能完成。排序的稳定性稳定排序:排序过程中,相同关键字(ki<kj,i<j)其领先关系不发生变化者,称为稳定。稳定性证明:要从算法本身的步骤中加以证明。不稳定排序:排序过程中,...原创 2019-10-26 13:43:47 · 210 阅读 · 0 评论