Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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#_Selection Sort - Fatal编程技术网

C#简单选择排序

C#简单选择排序,c#,selection-sort,C#,Selection Sort,我正在尝试对数组进行选择排序。但由于某种原因,它不会排序。我的代码: public static void SelectionSort(DataArray ar) { int n = ar.Length; for (int x = 0; x < n; x++) { int min_index = x; for (int y = x; y < n; y++)

我正在尝试对数组进行选择排序。但由于某种原因,它不会排序。我的代码:

public static void SelectionSort(DataArray ar)
    {
        int n = ar.Length;
        for (int x = 0; x < n; x++)
        {
            int min_index = x;
            for (int y = x; y < n; y++)
            {
                if (ar[min_index] > ar[y])
                {
                    min_index = y;
                }
                ar.Swap(y, ar[x], ar[min_index]);
            }
        }
    }
使用linq:

 var SortedArray = ar.OrderBy(o => o.Index).ToArray();

除非出现一些小故障,否则你的想法是对的。我没有编译,但这应该是可行的

public static void SelectionSort(DataArray ar)
{
    int n = ar.Length;
    for (int x = 0; x < n-1; x++)
    {
        int min_index = x;
        for (int y = x+1; y < n; y++)
        {
            if (ar[min_index] > ar[y])
            {
                min_index = y;
            }
            ar.Swap(y, ar[x], ar[min_index]);
        }
    }
}
公共静态无效选择排序(DataArray ar)
{
int n=应力长度;
对于(int x=0;xar[y])
{
最小指数=y;
}
应收账款互换(y,应收账款[x],应收账款[min_指数]);
}
}
}
课程计划
{
静态void Main(字符串[]参数)
{
int[]arrayData={10,25,33,45,88,99,22,11,66,44,23};
for(int i=0;i<代码>我们能看到你的交换方法吗?也可以考虑让你的问题更加明确。它没有回答问题,因为没有提出问题,但是是的,它没有回答问题,因此。@Servy true,问题的作者没有明确指出他的问题。另外,我们也不知道DataArray是一个
IEnumerable
public static void SelectionSort(DataArray ar)
{
    int n = ar.Length;
    for (int x = 0; x < n-1; x++)
    {
        int min_index = x;
        for (int y = x+1; y < n; y++)
        {
            if (ar[min_index] > ar[y])
            {
                min_index = y;
            }
            ar.Swap(y, ar[x], ar[min_index]);
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        int[] arrayData = { 10,25,33,45,88,99,22,11,66,44,23};
        for(int i = 0; i < arrayData.Length - 1; i++)
        {
            int minValue = i;
            for(int j = i + 1; j < arrayData.Length; j++)
            {
                if (arrayData[j] < arrayData[minValue])
                {
                    minValue = j;
                }

            }
            /*Swap Code*/
            int tempData = arrayData[minValue];
            arrayData[minValue] = arrayData[i];
            arrayData[i] = tempData;
        }

        /*Print Code*/
        for(int i = 0; i < arrayData.Length; i++)
        {
            Console.Write(arrayData[i]+"\t");
        }
        Console.ReadLine();
    }
}