【C#】使用方法对下面,进行排序(使用选择排序算法): [1,3,-1,5,-2]

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

方法也没用
负数也不会
望各位指点

        /// <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

温馨提示:内容为网友见解,仅供参考
无其他回答

如何用c#实现一个按照升序排列的整数序列?
方法步骤如下:1.首先,定义一个结构,包括数值、排名和序号。2.定义结构数组变量d,保存所有整数信息。3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。5.在主函数中,首先定义两个整数,并保存整数个数和排名计数...

在winform 用c# 如何把人名随机排序
方法一、打开Excel表格,光标定位到做为排序依据的成绩列(zf),点击常用工具栏中的“降序排序”按钮。就可以让整个表依“zf”列排序。(不能选中这一列再排序,这样做只能这一列排序,而其它列不动)方法二、1、点击菜单栏“数据”-“排序”2、在弹出来的“排序对话框”,选择排序的“主要关键字...

c#如何对一个打开的excel表格的一个区域的数据,按照某两列的大小进行...
打开表格,全选整个表格,在“数据”选项中选择“排序”,点击“包含标题”,点击“主要关键字”,选择你想按大小进行排序的两列中首先需要的其中一列的代号,然后选择“排序依据”,最后选择“次序”中的“升序”还是“降序”;其次再点“添加条件”重复以上步骤,就达到排序目的了 ...

C语言大牛推荐七大排序算法学生来看
1.冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换它们两个对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数:针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。2.选择排序 在未排席序列中找到最小(大)元素,存放到...

C语言:下面程序使用选择排序方法对20个整数进行排序,这20个数从键盘输 ...
void select_sort(int *x, int n) { \/\/选择排序int i, j, min;int t;for (i = 0; i < n - 1; i++) { \/\/ 要选择的次数:0~n-2共n-1次 min = i; \/\/ 假设当前下标为i的数最小,比较后再调整 for (j = i + 1; j < n; j++) { \/\/循环找出最小的数的下标是哪个if (*(x ...

在c#中如何比较多个数字的大小?
C#中这样去解决:你把你输入这些所有工资放到一个数组里,比如array[1,2,3,...12],然后对这个数组里的数字进行排序(排序的算法比较的多,你就用冒泡排序吧),排完序后(按升序排),array[0]就是最小值,array[11]就是最大值。有了这个思路,剩下的就是看你自己代码如何去写了。如有问题,联系我。 冒泡排序...

怎样用C语言对一串整行数从大到小排序
算法思想简单描述: 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; 然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环 到倒数第二个数和最后一个数比较为止。 选择排序是不稳定的。算法复杂度O(n2)--[n的平方]===*\/void select_sort(int *x, int n){ int i, j, min, ...

C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的...
j<n; j++){ printf("%d",a[ij);\/\/输出的内容就是排序好了的 }\/\/下面方法是用来排序的 void Sort(int *a, int n){ int i, j, temp;for(i=0; i<n; i++){ for(j=i; j<n; j++){ if(a[i] > a[j]){ temp = a[i];a[i] = a[j];a[j] = temp;} } } ...

给定N个不同的整数,要求对这N个整数按如下规则排序并输出。
1. 定义一个包含N个不同整数的数组。2. 选择合适的排序算法。3. 根据所选算法的步骤,对数组进行排序。4. 输出排序后的数组。在代码实现过程中,需要注意一些细节问题,如数组边界的处理、排序稳定性的考虑等。但总体来说,只要我们选择合适的排序算法,并按照算法的步骤进行实现,就可以很好地解决给定...

请教一下C#中的各种排序原理详细解答
} L[i+1]=L[0];\/\/将元素插入 } i=j-1;\/\/还原有序区指针 } } 2.希尔排序 原理:又称增量缩小排序。先将序列按增量划分为元素个数相同的若干组,使用直接插入排序法进行排序,然后不断缩小增量直至为1,最后使用直接插入排序完成排序。 要点:增量的选择以及排序最终以1为增量进行排序结束 ...

相似回答