有人知道c++排序为什么总有一个11无法排序

二号kernel 2023-05-28 14:53:06

我用c++的冒泡,插入和选择对一组随机数进行排序,总有一个11在排序前后位子不变

这是冒泡的代码:

#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
void chooseSort (int a[],int n);
int main()
{
    int a[10];
    int i;
    srand(time(NULL));
    for (i=0;i<50;i++)
        a[i]=rand();
    cout<<"排序前:"<<endl;
    for (i=0;i<50;i++)
        {
        cout<<a[i]<<" ";
        if ((i+1)%10==0)
            cout<<endl;
         } 
     chooseSort (a,50);
     cout<<"排序后:"<<endl;
     for (i=0;i<50;i++)
        {
        cout<<a[i]<<" ";
        if ((i+1)%10==0)
            cout<<endl;
         } 
         return 0;
}
void chooseSort (int a[],int n)
{
    int i,j,t;
    for (i=0;i<n-1;i++)
    {
        j=i;
        for (t=i+1;t<n;t++)
        if (a[j]>a[t])
            j=t;
        swap(a[j],a[i]);
         
    }
}

这是结果:

求大神指点 

...全文
189 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
h2plus0 2023-05-28
  • 打赏
  • 举报
回复 1

swap()的代码在?

h2plus0 2023-05-28
  • 举报
回复 1
@h2plus0 原来swap是std里面定义的, 代码最主要的问题是: a数组需要改成: int a[50]; 否则会出现数组访问越界
二号kernel 2023-05-28
  • 举报
回复
@h2plus0 谢谢🥹

12,961

社区成员

发帖
与我相关
我的任务
社区描述
编程初学者社区,为大家提供一个文明交流,互相学习讨论技术,打造高质量编程初学者社区,欢迎各位的加入,让我们从初学者,冲进大厂!Yo can do all things! 社区交流群:716213426
数据结构学习java 个人社区
社区管理员
  • 程序猿教你打篮球
  • 保护小周ღ
  • 拼命阿紫
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区面向各地编程爱好者,

我们目的为大家提供一个交流技术、分享知识,共同学习的平台。

人杰地灵当属此,万里求知满载归。

编程初学者社区交流群:716213426

试试用AI创作助手写篇文章吧