我有一个创建 10 个随机整数的数组,然后使用快速排序对它们进行排序。我的问题是,当我将其更改为创建 1,000,000 个随机整数时,它不会这样做..你能帮忙吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace RepeatAssignmentQ2
{
class Program
{
static public int Partition(int[] myArray, int left, int right)
{
int pivot = myArray[left];
while (true)
{
while (myArray[left] < pivot)
left++;
while (myArray[right] > pivot)
right--;
if (left < right)
{
int temp = myArray[right];
myArray[right] = myArray[left];
myArray[left] = temp;
}
else
{
return right;
}
}
}
static public void QuickSort_Recursive(int[] arr, int left, int right)
{
// For Recusrion
if (left < right)
{
int pivot = Partition(arr, left, right);
if (pivot > 1)
QuickSort_Recursive(arr, left, pivot - 1);
if (pivot + 1 < right)
QuickSort_Recursive(arr, pivot + 1, right);
}
}
static void Main(string[] args)
{
Random rnd = new Random();
DateTime startTime = DateTime.Now;
int ind = 0;
int length = 1000000;
int[] myArray = new int[length];
while (ind < 1000000)
{
myArray[ind] = rnd.Next(1000000);
ind++;
}
int lengthTwo = 10;
Console.WriteLine("QuickSort by recursive method");
QuickSort_Recursive(myArray,0, lengthTwo - 1 );
for (int i = 0; i < 1000000; i++)
{
Console.WriteLine(myArray[i]);
}
Console.WriteLine("Total Time: {0}\n", DateTime.Now - startTime);
Console.WriteLine();
}
}
}
谢谢
编辑 - 当我使用具有 10 个数字的数组调整程序时,它将显示它们并对其进行排序。当我将其更改为 1,000,000 并运行程序时,没有任何显示。
编辑 2 - 好吧,出于某种奇怪的原因,它正在这样做。我更改了上面的代码以显示更改,它现在显示它随机生成的数字,但它没有对它们进行排序。但是,当 IT 只需要创建 10 个随机数时,它会对其进行排序。