c#数据结构--冒泡排序

来源:互联网 发布:淘宝网外衣女人 编辑:程序博客网 时间:2024/06/07 01:01

之前都是c++实现各种数据结构,现在需要强化数据结构的学习,使用c#来实现。

冒泡排序:

using System;class Test{    static void show(int[] array)    {        for (int i = 0; i < 10; i++)        {            Console.Write(" "+array[i]);        }    }    static void Main()    {        int[] array = new int[10];        Random ran = new Random();        for (int i = 0; i < 10; i++)        {            array[i] = ran.Next(0, 100);        }        show(array);        //开始排序        //说明:        /*         *排序的思想很简单就是有几个数就排序几趟,         * 排序的规则就是两个数两个数的比较,如果         * 前面的数比后面的数大就交换位置,一直到         * 最后一个数的比较,这就算为一趟,一趟下来         * 最大的数据就排在了最后面,这样下一趟只需要         * 比较前面的9个数就可以了。         *          * 实际上如果有10个数,只需要比较9趟,原因是当比较到         * 第9趟后,最后一个数不存在顺序问题        */        for (int i = 0; i < 9; i++)            for (int j = 0; j < 9 - i; j++)            {                if (array[j] > array[j + 1])                {                    int temp = array[j];                    array[j] = array[j + 1];                    array[j + 1] = temp;                }            }        Console.WriteLine(" ");        show(array);    }}

选择排序:

using System;class Test{    static void show(int[] array)    {        for (int i = 0; i < 10; i++)        {            Console.Write(" "+array[i]);        }    }    static void Main()    {        int[] array = new int[10];        Random ran = new Random();        for (int i = 0; i < 10; i++)        {            array[i] = ran.Next(0, 100);        }        show(array);        //开始排序        /*算法思想:         * 从数组的第一个数开始,每次都从当前位置到整个数组中选择一个最小的数放在当前位置,以此下去         * 算法过程:         * 保留当前位置的数,从后面所有的数中找一个最小的和这个比较,如果比这个小,就交换位置         *         */        //-------------------------------------        for (int i = 0; i < 10; i++)        {            int temp =i;            for (int j = i+1; j < 10; j++)            {                if (array[j] < array[temp])                {                    temp = j;                }            }            if (temp != i)            {                int tempvalue = array[i];                array[i] = array[temp];                array[temp] = tempvalue;            }        }        //-------------------------------------        Console.WriteLine(" ");        show(array);    }<strong><span style="font-size:24px;color:#993300;">}</span></strong>

插入排序:

using System;class Test{    static void show(int[] array)    {        for (int i = 0; i < 10; i++)        {            Console.Write(" "+array[i]);        }    }    static void Main()    {        int[] array = new int[10];        Random ran = new Random();        for (int i = 0; i < 10; i++)        {            array[i] = ran.Next(0, 100);        }        show(array);        //开始排序        /*插入排序思路:         * 就是从第二个数开始依次和前面的数进行比较,如果被比较的数大,就往后移动被比较的数          * 覆盖当前的数,直到比这个数小为止,插入到较小的数后面即可         *          * /        */        for (int i = 1; i < 10; i++)        {            int temp = array[i];            int j = i;            while (j > 0 && array[j - 1] > temp)            {                array[j] = array[j - 1];                j--;            }            array[j] = temp;        }        //-------------------------------------        Console.WriteLine(" ");        show(array);    }}


0 0