我想增加傳遞數,但目前爲止輸出的內容顯示的格式不正確。例如,我進入5個號碼等5 4 3 2 1,格式將是:增量傳遞數
通行證1:1 4 3 2 5
通行證2:1 4 3 2 5
通行證3:1 2 3 4 5
通行證4:1 2 3 4 5
通行證5:1 2 3 4 5
但我的當前輸出是:
通行證1:2:3:4:5:1 4 3 2 5
通過1:2:3:4:5:1 4 3 2 5
通過1:2:3:4:5:1 2 3 4 5
通行證1:2:3:4:5:1 2 3 4 5
通行證1:2:3:4:5:1 2 3 4 5
我卡與for循環語句。任何想法我將如何做這種輸出。我正在做一個快速排序。
int[] nums = new int[100];
int SizeNum;
bool isNum = false;
private void ExeButton_Click(object sender, EventArgs e)
{
string SizeString = SizeTextBox.Text;
isNum = Int32.TryParse(SizeString, out SizeNum);
string[] numsInString = EntNum.Text.Split(' '); //split values in textbox
for (int j = 0; j < numsInString.Length; j++)
{
nums[j] = int.Parse(numsInString[j]);
}
if (SizeNum == numsInString.Length)
{
sortArray();
}
}
}
public void q_sort(int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = nums[left];
while (left < right)
{
while ((nums[right] >= pivot) && (left < right))
{
right--;
}
if (left != right)
{
nums[left] = nums[right];
left++;
}
while ((nums[left] <= pivot) && (left < right))
{
left++;
}
if (left != right)
{
nums[right] = nums[left];
right--;
}
}
nums[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
Display();
if (left < pivot)
{
q_sort(left, pivot - 1);
}
if (right > pivot)
{
q_sort(pivot + 1, right);
}
}
public void sortArray()
{
q_sort(0, SizeNum - 1);
}
public void Display()
{
int i;
int x;
String numbers = "";
ResultText.AppendText("Pass ");
for (x = 1; x < SizeNum; x++)
{
ResultText.AppendText(" " + x + ": ");
}
for (i = 0; i < SizeNum; i++)
{
numbers += nums[i].ToString() + " , ";
}
ResultText.AppendText(numbers + "\n");
}
你提的問題是非常清楚 - 「通行證數量」的含義並不明顯。 –