algorithm - 为什么这种排序算法有效?

标签 algorithm sorting

我有以下算法来订购包含 10 个数字的 .txt 文件

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

然后它会按顺序写入一个包含所有数字的新 .txt 文件。但是用笔写纸说它不应该工作。内容如下:

7 10 4 3 5 8 1 3

算法应该这样做:

10 7 4 3 5 8 1 3
10 8 4 3 5 7 1 3
10 8 5 3 4 7 1 3
10 8 5 4 3 7 1 3
10 8 5 4 7 3 1 3
10 8 5 4 7 3 3 1

很明显,最后一行顺序不对,那么为什么代码是正确的呢?或者...我用笔和纸做的时候哪里错了?

最佳答案

为什么它不起作用?这是一个非常基本的排序算法(称为 selection sort )。你的钢笔和铅笔的问题是你忘记了外面的 for。继续对每个项目进行排序。这就是它的复杂度为 O(n^2) 的原因。

关于algorithm - 为什么这种排序算法有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17839844/

相关文章:

Java比较器使用非final变量

java - 如何使用此代码对相同的值进行排序?

java - 使用 ListIterator 编写插入排序

python - 将字符串列表 [ '3' , '1' , '2' ] 转换为排序整数列表 [1, 2, 3]

python - 概念:从 "synonyms"列表中收集 "words"

algorithm - 福特富尔克森..后缘的目的是什么?

arrays - 如何改进Increasing Subsequences算法以合并未排序的数组?

sql - 相似度匹配算法

algorithm - long long 除法与 32 位内存

javascript - 以自定义方式对数组进行排序?