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 個の乱数を作成するだけでよい場合は、それを並べ替えました。