首先,我正在編寫程序,以可視化Android上的排序算法0我寫了插入排序算法的方法。我正在使用MPAndroidChart。android java insertsort使用ArrayList
void insertionSort(int[] arr) {
int i, j, newValue;
for (i = 1; i < arr.length; i++) {
newValue = arr[i];
j = i;
while (j > 0 && arr[j - 1] > newValue) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = newValue;
}
}
...它工作正常。我想重新設計它以使用ArrayList獲得相同的結果,但不幸的是,它崩潰了,我不知道爲什麼!這是我的收集方法插入排序:
void insertionSort(ArrayList<BarEntry> list) {
int i, j;
float newValue;
for (i = 1; i < list.size(); i++) {
newValue = list.get(i).getY();
j = i;
while (j > 0 && list.get(j-1).getY() > newValue) {
list.set(j, list.get(j-1));
j--;
}
BarEntry be = list.get(list.indexOf(newValue));
list.set(j, be);
}
}
BarEntry是用於創建圖表的類。我想通過它的Y座標對我的數據進行排序,我通過getY()函數做了什麼。程序關閉:
BarEntry be = list.get(list.indexOf(newValue)); list.set(j,be);
簡而言之: 如何可以替代
ARR [J] = NEWVALUE;
像這種徵收方式(不工作):
list.set(J,list.get(list.indexOf(NEWVALUE)));
您是否收到異常消息?堆棧跟蹤? –
不,我的應用程序剛剛重新啓動,當我點擊按鈕調出我的方法。 – d3st1ny