关注
```java
public static void descendingSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
swim(arr, i);
}
int size = arr.length;
swap(arr, 0, --size);
while (size > 0) {
sink(arr, 0, size);
swap(arr, 0, --size);
}
}
private static void swim(int[] arr, int i) {
while (i > 0 && arr[i] < arr[(i - 1) / 2]) {
swap(arr, i, (i - 1) / 2);
i = (i - 1) / 2;
}
}
private static void sink(int[] arr, int i, int n) {
while (2 * i + 1 < n) {
int left = 2 * i + 1;
int min = left;
min = left + 1 < n && arr[left] > arr[left + 1] ? min + 1 : min;
min = arr[i] <= arr[min] ? i : min;
if (min == i) return;
swap(arr, min, i);
i = min;
}
}
private static void swap(int[] arr, int i, int j) {
if (i != j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
}
```
查看原帖
2 评论
相关推荐
点赞 评论 收藏
分享
01-08 13:17
西南大学 运营 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你最近因为什么迷茫? #
6427次浏览 113人参与
# 实习生工资多少才算正常? #
2306次浏览 60人参与
# 领导做过最不靠谱的事 #
3680次浏览 69人参与
# AI coding的好用工具分享 #
1616次浏览 43人参与
# 上班以后,你还有哪些坚持的爱好? #
995次浏览 32人参与
# 实习怎么做才有更好的产出 #
1275次浏览 44人参与
# 找工作以来,你最看不惯__ #
1681次浏览 46人参与
# 你都在哪些场所面过试? #
3334次浏览 52人参与
# 你给AI提过哪些离谱的需求? #
1160次浏览 36人参与
# 哪些公司开春招了? #
1424次浏览 20人参与
# 非技术岗投递进展 #
166614次浏览 1317人参与
# 秋招有哪些公司要求提前实习 #
102458次浏览 544人参与
# 新年的第一句祝福 #
53538次浏览 389人参与
# 工作压力大怎么缓解 #
132391次浏览 1139人参与
# 24届的你们现状如何了? #
107258次浏览 515人参与
# 实习转正进行时 #
138368次浏览 896人参与
# 你觉得第一学历对求职有影响吗? #
222171次浏览 1229人参与
# 产运销实习日记 #
82787次浏览 681人参与
# 打工人锐评公司红黑榜 #
190997次浏览 1051人参与
# Prompt分享 #
5533次浏览 141人参与