java排序算法3(冒泡排序、快速排序)
冒泡排序---稳定
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
for (int i = 0; i <arr.length-1; i++) {//第几轮
boolean flag=false;//是否交换过
for (int j = 0; j <arr.length-i-1; j++) {//两两比较
if (arr[j]>arr[j+1]){
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
flag=true;
}
}
if (!flag) {//如果没有交换,说明提前排好序了,直接结束
break;
}
}
平均时间复杂度 | 最好 | 最坏 | 空间复杂度 |
---|---|---|---|
O(n²) | O(n) | O(n²) | O(1) |
快速排序---不稳定
双边快排
//快速排序
public void QuickSort(int[] arr, int l, int h) {
if (l >= h) {
return;
}
int tmp = arr[l];//第一个数为基准
int i = l;
int j = h;
while (i < j) {
//j从右向左
while (i < j && arr[j] > tmp) {
j--;
}
//i从左向右走
while (i < j && arr[i] <= tmp) {
i++;
}
swep(arr, i, j);
}
//基点交换
swep(arr, l, j);
QuickSort(arr,l,i-1);//左边递归
QuickSort(arr,i+1,h);
// return i;
}
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix