当前位置:编程学习 > C#/ASP.NET >>

c#实现几种常见排序算法用

没事把几种常见排序算法用c#写一下,复习一下,大伙也复习一下,今天先写3种简单的。
        //SelectSort
        static void Main(string[] args)
        {
            int n = 6;
            int[] a = { 10, 2, 5, 1, 8, 4 };
            int temp = 0,temp_v = 0;
            int j = 0;
            for (int i = 0; i < n-1; i++)
            {
                temp = i;
                for (j = i + 1; j < n; j++)
                    temp = a[temp] < a[j] ? temp : j;

                //swap a[temp],a[i]
                temp_v = a[temp];
                a[temp] = a[i];
                a[i] = temp_v;
            }

            for (int i = 0; i < n; i++)
            {
                Console.Write("{0},", a[i]);
            }
            Console.ReadLine();
        }


        //InsertSort
        static void Main(string[] args)
        {
            int n = 6;
            int[] a = { 10, 2, 5, 1, 8, 4 };
            int temp = 0;
            int j = 0;
            for (int i = 1; i < n; i++)
            {
                temp = a[i];
                for (j = i; j > 0 && temp < a[j - 1]; a[j] = a[j - 1], j--) ;
                a[j] = temp;
            }

            for (int i = 0; i < n; i++)
            {
                Console.Write("{0},",a[i]);
            }
            Console.ReadLine();
        }

        //BubbleSort
        static void Main(string[] args)
        {
            int n = 6, m =6;
            int[] a = { 10, 2, 5, 1, 8, 4 };
            int temp_v = 0;
            int j = 0;
            for (int i = 0; i < n; n--)
                for (j = 1; j < n; j++)
                    if (a[j-1] > a[j])
                    { 
                        //swap a[j],a[j-1]
                        temp_v = a[j];
                        a[j] = a[j-1];
                        a[j-1] = temp_v;
                    }

            //print 
            for (int i = 0; i < m; i++)
            {
                Console.Write("{0},", a[i]);
            }
            Console.ReadLine();
        } --------------------编程问答-------------------- 哈~不错~复习复习~~ --------------------编程问答-------------------- 不错。学习一下。现在排序懒了,直接使用array.sort --------------------编程问答-------------------- --------------------编程问答-------------------- [img=/upload/20131228/51.gif][/img --------------------编程问答-------------------- 冒泡有点问题哦,应该检测每边是否交换过。。 --------------------编程问答-------------------- 基本上都是典型的算法,现在基本上是需要结合具体的业务场景使用正确的算法,所以算法的用法比算法本身更重要。

这些算法都有数学背景作支撑,楼主最好能给出其数学背景,这样理解起来更深刻。 --------------------编程问答-------------------- 5楼的意思我不明白。
6楼你说的是指这些算法的原理么?虽然我是学数学的,可是让我说出这个原理知识还是有所欠缺,
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,