почему я продолжаю получать ошибки в моем алгоритме сортировки выбора - PullRequest
0 голосов
/ 09 марта 2019

так что, основываясь на моих лекциях, книге и том, что я нашел в Интернете, мой код верен, но я продолжаю получать одни и те же ошибки, независимо от того, что я делаю.это стало довольно обескураживающим, любая помощь была бы удивительной.

public class OrderedArrayList extends UnorderedArrayList
{

public OrderedArrayList(int size)
{
      super(size);
}

public OrderedArrayList()
{
    super();
}

    //Copy constructor
public OrderedArrayList(OrderedArrayList otherList)
{
    super(otherList);
 }

public void sort()
{// start sort
int min;
for (int i = 0; i < list.length; i++) 
{
    min = i;
    for (int j = i + 1; j < list.length; j++)
     {
        if (list[j] < list[min]) 
        {
            min = j;

        }
     }
    if (min != i)
     {
        final int temp = list[i];
        list[i] = list[min];
        list[min] = temp;
     }
    System.out.println(list[i]);//  print in ascending order  
    }


 }// end sort

}

Вот ошибка:

 ----jGRASP exec: javac -g OrderedArrayList.java
  OrderedArrayList.java:29: error: bad operand types for binary operator '<'
        if (list[j] < list[min]) 
                    ^
  first type:  DataElement
 second type: DataElement
 OrderedArrayList.java:37: error: incompatible types: DataElement 
 cannot be converted to int
        final int temp = list[i];
                             ^
  OrderedArrayList.java:39: error: incompatible types: 
  int cannot be converted      to DataElement
        list[min] = temp;
                    ^
   3 errors

независимо от того, какой тип данных я пишу для целой строки, я всегда получаю одно и то жеошибки каждый раз.эта лаборатория требует, чтобы это был DataElement.

1 Ответ

0 голосов
/ 10 марта 2019

Вот ваш метод сортировки, использующий DateElement вместо int.

public void sort() {// start sort
    int min;
    for (int i = 0; i < list.length; i++) {
        min = i;
        for (int j = i + 1; j < list.length; j++) {
            if (list[j].compareTo(list[min]) < 0) {
                min = j;
            }
        }
        if (min != I) {
            final DateElement temp = list[i];
            list[i] = list[min];
            list[min] = temp;
        }
        System.out.println(list[i]);//  print in ascending order  
    }
}

Обратите внимание, что я не проверял саму сортировку, я только что исправил проблему с DateElement

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...