我想打印一个数组,它指出“placementPosition”的位置,或者数组中参数的位置。这个位置是最新数字被插入到数组的排序部分的位置。对于“currPosition”是相同的,但是如果我得到了放置的帮助,我可以想出来。 “i”是placementPosition,“c”是“currPosition”。看起来应该是这样的:
我真的不知道该怎么做,这是我到目前为止的代码:
public static void displaySort(int[] items, int currPosition, int placedPosition) {
System.out.println("Iteration #"+currPosition);
String[][] arr = new String[currPosition][currPosition];
String i="i";
String c="c";
String ic="ic";
System.out.println(arr[placedPosition][placedPosition]=i);
System.out.println(arr[currPosition][currPosition]=c);
System.out.println(Arrays.toString(items));
}
排序:
public static void insertionSort(int[] items) {
int currentPosition; // the number of items sorted so far
int currentItem; // the value being inserted
int backwardMovingIndex; // used to find where the current value gets inserted.
//displaySort(items, 0, 0); // use this call to display the list before the first iteration (iteration 0)
for (currentPosition = 1; currentPosition < items.length; currentPosition++) // Start with 1 (not 0)
{
currentItem = items[currentPosition];
for (backwardMovingIndex = currentPosition - 1; (backwardMovingIndex >= 0) && (items[backwardMovingIndex] > currentItem); backwardMovingIndex--) // Larger values are moving up
{
items[backwardMovingIndex + 1] = items[backwardMovingIndex];
}
items[backwardMovingIndex + 1] = currentItem; // Put the current value in its proper location
displaySort(items, currentPosition, backwardMovingIndex + 1); // use this call to display the list for all other iterations
}
}
答案 0 :(得分:0)
对于初学者,您需要确保使用固定位数打印出数字,因此请尝试使用
等代码而不是 for (int item : items) {
System.out.printf("%5d", item);
}
System.out.println();
int i = 1;
for (int x = 0; x<items.length; x++) {
if (x == i) {
System.out.printf("%5s", "i");
}
else {
System.out.printf("%5s", "");
}
}
System.out.println();
要在列中放置“i”,请使用
之类的代码n
对于控制循环所有分支中列宽的格式说明符,键使用相同的值(在本例中为5)。如果这些是任意整数,您可能需要使用更大的值,例如10.如果您想获得幻想,可以通过查看最大absoulte值的基数10 logr来确定制作列的宽度在数组中。然后,您可以将整数转换为精确String.format("%"+n+"d", item)
个字符的字符串
(x == c)
要完成您的问题,请在if / else结构中添加更多分支以进行检查
(i == c) && (x == i)
和this.tasks