十种排序算法整理

十种排序算法 冒泡排序 一共进行 n - 1 轮,在每一轮排序中对相邻两元素进行比较,大的排在后面。 /** * 冒泡排序 * 时间复杂度:最优 O(n),最坏 O(n²),平均 O(n²) * 空间复杂度:O(1),原地排序 * 稳定性:稳定 */ private static void bubbleSort(int[] arr) { int n = arr.length; boolean flag = true; for (int i = 0; i < n - 1; i++) { flag = true; for (int j = 0; j < n - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); flag = false; } } if (flag) break; } } 选择排序 同样进行 n - 1 轮,每一轮从待排序序列中挑出最小的元素,将其放至已排序序列的末尾。 ...

2026年4月16日 · 7 分钟 · 3164 字 · withdong02

LeetCode155.最小栈

第二次碰到这道题了,又学了两种解题方法,记录一下。 题目介绍 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int getMin() 获取堆栈中的最小元素。 解法一:使用辅助栈 这个也是最简单的,题目没有空间限制,考虑使用两个栈,主栈正常记录元素进出,辅助栈记录每个元素对应最小值的进出,辅助栈的栈顶保持为主栈所有元素的最小值。 ...

2026年2月26日 · 2 分钟 · 899 字 · withdong02

LeetCode8.字符串转换整数

一切源于一道题目:8. 字符串转换整数 (atoi) - 力扣(LeetCode) 考虑这样一个问题:给你一个数字字符串,如何在32位环境下安全的处理可能超过[-2^31, 2^31 - 1]范围的数字,不能使用64位变量临时存储。 ...

2026年2月15日 · 2 分钟 · 807 字 · withdong02