Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按降序c#进行快速排序(无内置排序函数)_C#_Quicksort - Fatal编程技术网

按降序c#进行快速排序(无内置排序函数)

按降序c#进行快速排序(无内置排序函数),c#,quicksort,C#,Quicksort,因此,我实现了一个快速排序算法: public static void Quick_Sort(int[] data, int left, int right,int dataSet) { int i = left, j = right; int pivot, temp; dataSet tempSet; pivot = data[(left + right) / 2]; do { while ((data[i] < pivo

因此,我实现了一个快速排序算法:

 public static void Quick_Sort(int[] data, int left, int right,int dataSet)
{
    int i = left, j = right;
    int pivot, temp;
    dataSet tempSet;
    pivot = data[(left + right) / 2];
    do
    {
        while ((data[i] < pivot) && (i < right)) i++;
        while ((pivot < data[j]) && (j > left)) j--;
        if (i <= j)
        {
            //First change the data Array
            temp = data[i];
            data[i] = data[j];
            data[j] = temp;
            //Then change the dataSet array
            if (dataSet == 1)
            {
                tempSet = Program.set1Data[i];
                Program.set1Data[i] = Program.set1Data[j];
                Program.set1Data[j] = tempSet;
            }
            else if (dataSet == 2)
            {
                tempSet = Program.set2Data[i];
                Program.set2Data[i] = Program.set2Data[j];
                Program.set2Data[j] = tempSet;
            }
            else if (dataSet ==3)
            {
                tempSet = Program.bothSetData[i];
                Program.bothSetData[i] = Program.bothSetData[j];
                Program.bothSetData[j] = tempSet;
            }

            i++;
            j--;
        }
    } while (i <= j);
    if (left < j) Quick_Sort(data, left, j,dataSet);
    if (i < right) Quick_Sort(data, i, right,dataSet);
}
publicstaticvoid快速排序(int[]数据、int左、int右、int数据集)
{
int i=左,j=右;
温度;
数据集温度集;
枢轴=数据[(左+右)/2];
做
{
而((数据[i]left))j--;
如果(i只是改变:

while ((data[i] < pivot) && (i < right)) i++;
while ((pivot < data[j]) && (j > left)) j--;
while((数据[i]left))j--;
致:

while((数据[i]>pivot)和&(idata[j])&&(j>left))j--;
只需更改:

while ((data[i] < pivot) && (i < right)) i++;
while ((pivot < data[j]) && (j > left)) j--;
while((数据[i]left))j--;
致:

while((数据[i]>pivot)和&(idata[j])&&(j>left))j--;

可能重复的我说我没有使用内置排序函数。可能重复的我说我没有使用内置排序函数。刚刚尝试了这个,但似乎没有效果。仍然很混乱。我是否也需要在其他条件下反转其他比较?刚刚尝试了这个,但似乎没有效果。仍然都是jum流血了。我是否也需要在其他条件下反转其他比较?