首页 > 编程语言 > 详细

排序算法之选择排序

时间:2014-10-30 20:53:53      阅读:147      评论:0      收藏:0      [点我收藏+]

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

class Program
{
    static void Main(string[] args)
    {
        int[] array = new[] { 234, 632, 23, 643, 2, 6, -2, 423, 2342 };
        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;
        }
    }
}

 

排序算法之选择排序

原文:http://www.cnblogs.com/GodX/p/4063570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!