【C#】使用方法对下面,进行排序(使用选择排序算法): [1,3,-1,5,-2]
int[]brr=new[]{1,3,-1,5,-2};for(inti=0;i<brr.Length;i++){intMin=i;for(intj=0;j<brr.Le...
int[] brr = new[] { 1, 3, -1, 5, -2 };
for (int i = 0; i < brr.Length; i++)
{
int Min = i;
for (int j = 0; j < brr.Length - i - 1; j++)
{
if (brr[Min] > brr[j])
{
Min = j;
}
}
int temp = brr[Min];
brr[Min] = brr[i];
brr[i] = temp;
}
foreach(int oldnum in brr)
{
Console.WriteLine(oldnum);
}
方法也没用
负数也不会
望各位指点 展开
for (int i = 0; i < brr.Length; i++)
{
int Min = i;
for (int j = 0; j < brr.Length - i - 1; j++)
{
if (brr[Min] > brr[j])
{
Min = j;
}
}
int temp = brr[Min];
brr[Min] = brr[i];
brr[i] = temp;
}
foreach(int oldnum in brr)
{
Console.WriteLine(oldnum);
}
方法也没用
负数也不会
望各位指点 展开
展开全部
/// <summary>
/// 选择排序:
/// 第一次迭代选择数组中的最小元素,将其与数组的第一个元素交换。
/// 第二次迭代选择数组中剩下元素的最小元素,将其与第二个元素交换。以此类推....
/// 最后,最大元素留在数组最后一个位置。
/// (第i次迭代之后,数组中最小的i个元素,已按升序放到了数组的前i个元素中)
/// 核心算法时间复杂度:
/// T(n)=O(n²)
/// </summary>
public void SelectionSort()
{
for (int index = 0; index < array.Length; index++)
{
//设最小元素索引为迭代的开始
int minValueIndex = index;
//子循环开始索引
int subIndex = index;
while (++subIndex < array.Length)
{
if (array[subIndex] < array[minValueIndex])
{
//将最小值的索引更新
minValueIndex = subIndex;
}
}
//将最小值提前
if (minValueIndex != index)
Swap(index, minValueIndex);
}
}
参考:www.cnblogs.com/wjshan0808/archive/2013/04/14/3020333.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询