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();
}
}