[英]why do i keep getting errors in my selection sort algorithm
因此,根據我的講座、書籍和我在網上找到的內容,我的代碼是正確的,但無論我做什么,我都會遇到相同的錯誤。 它變得非常令人沮喪,任何幫助都會很棒。
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。
這是您使用 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 的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.