gpt4 book ai didi

java - 我的排序算法有名称吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:27 24 4
gpt4 key购买 nike

在一项学校作业中,我应该创建一个排序算法。

我做了以下事情:

    //array "ints" has already been declared
int s = 0;
for(int i=0;i<ints.length;i++) {
for(int j=i+1; j<ints.length; j++) {
if(ints[i]>ints[j]) {
s = ints[j];
ints[j]=ints[i];
ints[i]=s;
}
}
}

老师把上面的算法叫做“冒泡排序”。然而,据我所知,(在 Google 上)上面的代码不是冒泡排序,冒泡排序看起来更像下面的代码:(可能不是最有效的它的版本,但无论如何)

    //array "ints" has already been declared
int sub = 0;
int swaps = 100;
if (ints.length>1) {
while(swaps>0) {
swaps=0;
for(int i=0; i<ints.length-1; i++) {
if(ints[i]>ints[i+1]) {
sub = ints[i+1];
ints[i+1]=ints[i];
ints[i]=sub;
swaps++;
}
}
}
}

我敢肯定,我实际上并没有发明一种新的排序算法,但我找不到任何使用与我编写的代码相同过程的排序算法。

我的算法有名称吗?

请注意,它比较的是非相邻值和排序过程,并且算法不一定在经过一轮不交换的算法后完成。这两者都表明它是不是冒泡排序。这可能是版本选择排序。


我不想知道它的效率如何;我正在努力自己找出答案。

最佳答案

这似乎是经过修改的 selection sort ,正如 maraca 和 Srini 所指出的。

参见,例如,this animation page .冒泡排序(具有给定的数组/列表长度)需要更长或更短的时间,具体取决于数组是否接近排序。选择排序(具有给定的数组/列表长度)花费完全相同的时间,而不管列表最初是如何排序的。我的算法基本上类似于选择排序,只是它有很多额外/不必要的交换。

关于java - 我的排序算法有名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com