java - 在JAVA中这种排序叫什么?

标签 java algorithm sorting

祝大家度过愉快的一天!

我是 Java 新手,所以我仍在掌握它的窍门。

有一种我经常使用的排序算法

for(int i=0; i<array.length; i++){
    for(int j=i; j<array.length; j++){
        if(array[j] < array[i]){
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
}

说明: 外循环首先使用数组的第一个元素,并开始将其与列表中的其余元素进行比较,如果它大于其中一个元素,则交换它。

例如,我们得到一个数组 12, 5, 14, 8, 3

我们的 array[0] 为 12。 将其与内部循环中的 array[1] 进行比较,因为 5<12 我们交换它们。内部循环一直持续到 array[4],其中 array[4] < array[0] 现在我们有 3 作为数组中正确位置的最小元素

冲洗并重复其余元件

这种排序是什么类型?因为它似乎不适合选择排序或插入排序,更不用说冒泡排序了。

感谢您的帮助!

最佳答案

这绝对是选择排序,因为最后您将开头附近的较高数字交换为较远的较低数字。大多数情况下,如果排序方法在其选择的末尾有一个交换。

关于java - 在JAVA中这种排序叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50195033/

相关文章:

cocoa - Cocoa NSSortDescriptors 属于模型还是 Controller ?

r - 在 R 中对数据框进行排序(基于列值)

java - for 循环和语法的变体

python - 如何根据不同的索引对 python 列表进行排序?

php - 通过下拉列表对数据库条目进行排序

algorithm - 检测两个矩形是否可以组合成一个矩形

algorithm - 最小-最大堆中的删除-最大操作

java - 为什么我们使用 struts 标签而不是旧的 HTML 标签,它带来什么区别?

java - 如何从 JavaFX 客户端发出 HTTP post 请求?

java - 尝试删除所有缓存时 Ehcache 中出现异常