按字母顺序对数组排序

山姆

我需要按一种简单的方式按书名对书本对象进行排序。但是,我编写的选择排序算法无法正常工作,只能四处移动书本,但顺序不明显。我究竟做错了什么?

int j;
int b;

for (int i = 0; i < 20 - 1; i++) {
    int minIndex = i;

    for (j = i + 1; j < 20; j++) {
        b = (bookA[j].getTitle().compareTo(bookA[minIndex].getTitle()));
        if (b < 0) {
            minIndex=j;
        }
    }

    Book temp = bookA[i];
    bookA[i] = bookA[j];
    bookA[j] = temp;
}

for (int z = 0; z < 20; z++)
    System.out.println(bookA[z].toString());
费奥多尔X

您正在使用中j作为索引bookA[i] = bookA[j];问题是您j在每次迭代中都覆盖了的值,因此,当最终到达时,bookA[i] = bookA[j];它始终是20

您要用替换它bookA[minIndex]结果代码如下所示:

int j;
int b;

for(int i=0;i<20-1;i++){
    int minIndex=i;

    for(j=i+1;j<20; j++) {
        b=(bookA[j].getTitle().compareTo(bookA[minIndex].getTitle()));
        if(b<0){
            minIndex=j;
        }
    }

    Book temp = bookA[i];
    bookA[i] = bookA[minIndex];
    bookA[minIndex] = temp;
}

for(int z=0;z<20;z++)
    System.out.println(bookA[z].toString());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP:按字母顺序对数组排序

快速按字母顺序对数组排序

Swift:按字母顺序对数组排序

如何按字母顺序对数组排序?

如何按字母顺序对数组排序?

根据搜索输入按字母顺序对数组进行排序

按字母顺序对数组进行排序:Coffeescript

用数字按字母顺序对数组进行排序

Numpy Python:按字母顺序对数组的列进行排序

使用sort方法按字母顺序对数组进行排序

Javascript按日期和字母顺序对数组进行排序

按字母顺序对数组列表进行排序

无法按字母顺序对数组进行排序

在Java中按长度先对数组排序,然后按字母顺序对数组进行排序

php-函数,首先使用大写字母按字母顺序对数组进行排序

在Javascript中按名字(按字母顺序)对数组进行排序

在数组perl中按数字对数字和按字母顺序排序

在数组的一个属性上按字母顺序对数组中的对象进行排序

按字母值对数组进行排序

按特定顺序对数组进行排序

按定义的顺序对数组进行排序

按特定顺序对数组进行排序

按特定顺序对数组进行排序

根据一个属性按字母顺序对数组中的对象进行排序

在javascript中按字母顺序对数组及其对象键进行排序

按字母顺序对数组列表进行排序(波斯语)

如何在 angular2+ 中按字母顺序对数组进行排序、分组和划分

C ++从文件中获取数据时,使用strcpy和strcmp按字母顺序对数组排序?

在Swift 3.0中按字母顺序对数组[[String:Any]]进行排序