排序算法之选择排序_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 排序算法之选择排序

排序算法之选择排序

 2014/10/30 23:14:40  青风坠  程序员俱乐部  我要评论(0)
  • 摘要:选择排序定义:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。classProgram{staticvoidMain(string[]args){int[]array=new[]{234,632,23,643,2,6,-2,423,2342,43};Console.WriteLine("排序前:");Console.WriteLine(string.Join(",",array))
  • 标签:算法

选择排序定义:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

class Program
{
    static void Main(string[] args)
    {
        int[] array = new[] { 234, 632, 23, 643, 2, 6, -2, 423, 2342,43 };
        Console.WriteLine("排序前:");
        Console.WriteLine(string.Join(",", array));

        SelectSort(array);

        Console.WriteLine("排序后:");
        Console.WriteLine(string.Join(",", array));
        Console.ReadKey();
    }
    
    /// <summary>
    /// 选择排序
    /// </summary>
    /// <param name="sources">目标数组</param>
    private static void SelectSort(int[] sources)
    {
        for (int i = 0, len = sources.Length - 1; i <= len; i++)
        {
            // 假设最小值索引
            int minIndex = i;

            // 循环遍历一遍找到最小值的索引
            for (int j = i + 1; j <= len; j++)
            {
                // 如果最小值比其他元素大,重新设置最小值的索引
                if (sources[minIndex] > sources[j])
                {
                    minIndex = j;
                }
            }

            // 临时变量交换最小值的位置;
            int temp = sources[i];
            sources[i] = sources[minIndex];
            sources[minIndex] = temp;
        }
    }
}

 

上一篇: asp.net实现cms系统功能 下一篇: 没有下一篇了!
发表评论
用户名: 匿名