java - Java.util包中Arrays的排序算法

标签 java algorithm

 /**
 * Sorts the specified sub-array of bytes into ascending order.
 */
private static void sort1(byte x[], int off, int len) {
// Insertion sort on smallest arrays
if (len < 7) {
    for (int i=off; i<len+off; i++)
    for (int j=i; j>off && x[j-1]>x[j]; j--)
        swap(x, j, j-1);
    return;
}

From Arrays.java line 804-814

如上所述,它声称使用插入排序。 但是,我将其视为冒泡排序? 它实际上是哪一个,为什么?

最佳答案

引用的代码插入排序。冒泡排序重复遍历整个数组,而插入排序排序第一个元素,然后是前两个元素,然后是前三个元素,等等。你可以分辨出来,因为代码有两个索引循环,而外循环在冒泡排序只是检查整个数组是否有序。

关于java - Java.util包中Arrays的排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014639/

相关文章:

java - 在java中运行一个shell文件

android - java.lang.NoClassDefFoundError : java. util.Objects

java - libgdx 和 Box2d 碰撞优化

algorithm - 通过一次更改、插入或删除一个字符将一个单词转换为另一个单词

algorithm - 从二叉堆中删除叶子的时间复杂度

java - 从 Java 代码转换而来的 Python 错误

java - Java中根据人口密度构建四叉树

java - 在另一个 Activity 中启动 Activity

algorithm - 打印从根到叶子的 n 叉树的所有路径

javascript - CodeWars/合并字符串检查器