我似乎发明了一种新的排序算法
2024-10-13 21:03:22
发布于:浙江
新手吃饭时突发奇想,大佬勿喷
先找最小值与第一位互换
int minn=1000000,minx;
for(int i=1;i<=n;i++){
if(a[i]<=minn)
{
minx=i;
minn=a[i];
}
}
swap(a[1],a[minx]);
4 | 3 | 2 | 1 |
---|---|---|---|
1 | 3 | 2 | 4 |
然后寻找一个比当前数大但差值最小的数,将它何当前位加一位交换
for(int i=1;i<=n-1;i++){
int cha=10000000;
int minnx;
for(int j=1;j<=n;j++)
{
if(a[j]>=a[minx]&&j!=minx){
if((a[j]-a[minx])<=cha){
minnx=j;
cha=a[j]-a[minx];
}
}
}
swap(a[minx+1],a[minnx]);
minx++;}
1 | 3 | 2 | 4 |
---|---|---|---|
1 | 2 | 3 | 4 |
发到洛谷,有人说是假冒泡,有人说是假选择,帮忙看看吧!QwQ
全部评论 3
看完了 鉴定为选如择
2024-10-14 来自 广东
0很简单 找和第 小的数差值最小的数就是在找第 小的数
2024-10-14 来自 广东
0
先找最小值与第一位互换????插排啊?
2024-10-14 来自 上海
0这只运行一次
2024-10-14 来自 浙江
0应该是选排
2024-10-14 来自 上海
0说错了
2024-10-14 来自 上海
0
怎么有点看不懂...
2024-10-14 来自 广东
0?
2024-10-14 来自 浙江
0?
2024-10-14 来自 广东
0
有帮助,赞一个