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

方法也没用
负数也不会
望各位指点
展开
 我来答
wjshan0808
2017-10-13 · TA获得超过601个赞
知道小有建树答主
回答量:696
采纳率:74%
帮助的人:365万
展开全部
        /// <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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式