
基础算法
文章平均质量分 61
家师曹先生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA内置排序方法
排序是按特定顺序组织数据项集合的过程,通常是升序或降序。有许多不同的算法可用于对数据进行排序,包括冒泡排序、选择排序、插入排序、归并排序和快速排序等。Java 是一种编程语言,它提供了许多用于对数据进行排序的内置方法,包括Arrays.sort() 和 Collections.sort() 这些方法使用高效的排序算法来快速高效地对数据进行排序。原创 2022-12-21 17:46:54 · 2595 阅读 · 0 评论 -
字符串的冒泡排序
字符串的冒泡排序,与数字和字符的冒泡排序并没有太大的区别,主要是获取输入字符串并保存到字符串数组中,还有判断相邻字符串的长度比较。原创 2022-01-25 18:27:42 · 1180 阅读 · 0 评论 -
堆排序算法
堆排序思路:将一个无序序列构建成一个堆。将堆顶元素下沉到数组后面。将剩余的 n - 1 个元素重新调整成一个堆。继续将堆顶元素下沉。重复执行上诉操作,直到得到一个完整的有序序列为止。原创 2022-10-19 15:28:07 · 294 阅读 · 0 评论 -
归并排序算法
归并排序算法是一种典型的基于 分治思想 的递归算法,通过递归将一个大问题拆分成若干个小问题,然后再将递归合并小问题。原创 2022-10-16 23:25:22 · 262 阅读 · 0 评论 -
直接插入排序算法
从第 i 个位置向前比较与交换,使得前 i + 1 个元素变成有序序列。第1轮,i 的下标为1 ( 注意:第一轮的下标不是0,而是1 )。原创 2022-10-16 18:58:45 · 323 阅读 · 0 评论 -
希尔排序算法
希尔排序在数组中采用 跳跃式分组 的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1。原创 2022-10-16 01:28:11 · 1041 阅读 · 0 评论 -
简单选择排序算法
算法实现思想:选择排序一共排序了n-1轮。定义变量min来记录每轮中需要比较序列中的最小数,变量minIndex记录每轮中最小数的下标。第i轮,将第i个数赋给min,然后从下标为i+1的位置开始,遍历后续元素,让它们跟min比较。如果比min小,则将其值赋给min,并用minIndex记录其下标。如果比min大,则遍历下一个元素,直至找到最小数。原创 2021-12-17 16:58:41 · 594 阅读 · 0 评论 -
数组元素循环左移n个位置(JAVA)
问题描述:将n(n>1)个整数存放在一维数组R中,设计一个在时间和空间两方面都尽可能高效的算法。 将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据(x0,x1,x2,…x(n-1))变换为(xp,x(p+1),…,x(n-1),x0,x1,…,x(p-1))示例:[1, 2, 3, 4, 5, 6, 7, 8, 9]左移4位[5, 6, 7, 8, 9, 1, 2, 3, 4]...原创 2021-10-02 00:06:45 · 5419 阅读 · 0 评论 -
十大经典排序算法系列
0️⃣根据时间复杂度的不同,主流的排序算法可以分为3大类:1️⃣根据算法的稳定性,划分为稳定排序和不稳定排序。值相同的元素在排序后,任然保持着排序前的前后顺序,则这样的排序算法是稳定排序,否则是不稳定排序。2️⃣不管什么样的算法题,都至少能找出两种算法来求解。而$O(n^2)$ 时间复杂度已经是很高的了,如果你使用的算法时间复杂度为O(n^2) ,那么你就应该考虑要如何降低它的时间复杂度了。原创 2021-05-19 12:26:15 · 212 阅读 · 1 评论 -
快速排序算法
基本思路:1. 选定基准数 pivot2. 将小于pivot的数字 放在pivot左边(即:左子序列)3. 将大于pivot的数字 放在pivot右边(即:右子序列)4. 通过递归排序,分别对左右子序列 ,重复前三步操作原创 2021-04-04 16:10:01 · 228 阅读 · 1 评论 -
冒泡排序算法 (JAVA)
冒泡排序时间复杂度那么高,为什么还有存在意义吗?如果序列是用数组保存的,那么冒泡排序的意义确实不大。但如果序列是用链表保存的话,因为冒泡排序是相邻两个元素进行比较,那么我们只需记住相邻两个元素的指针即可,代码写起来非常方便。不像其它排序那样,需要记住很多的指针,消耗的内存也会很多。原创 2021-04-04 16:09:11 · 428 阅读 · 1 评论