(3)C#for循环实现冒泡排序

来源:互联网 发布:成都网络危机公关公司 编辑:程序博客网 时间:2024/05/21 22:43
class Program    {        static void Main(string[] args)        {            int[] a = { 15,17,3,4,4,19,6,7,11,9,10};            ////冒泡排序:从第一个数开始,相邻两个数进行比较,大的靠前,小的靠后,直到比较完一轮,最小的数放在最后。第二轮开始,比较到a.lenght-1-1,最小的数放在最后面...一直重复。            ////比较完一轮,发现只是选到了最小的数到下面,那么还要比第二轮,就相当for嵌套。            for (int j = 0; j < a.Length-1;j++ )            {                for (int i = 0; i < a.Length - 1 - j;i++ )                {                    int temp;                    if (a[i] < a[i + 1])                    {                        temp = a[i];                        a[i] = a[i + 1];                        a[i + 1] = temp;                    }                }            }            //选择排序,选定最大/最小的数放在首位置,            //例子:第一轮 :19,15,3,4,4,17,6,7,11,9,10            //第二轮:19,17,3,4,4,15,6,7,11,9,10            //从a[0]比较到a[10]            //19,17,15,4,4,3,6,7,11,9,10            //19,17,15,4,4,3,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //19,17,3,4,4,15,6,7,11,9,10            //从上面可以看出第二轮从第2个数开始比较,            for(int i = 0 ;i<a.Length-1;i++)            {                for (int j = i+1; j < a.Length; j++)                {                    int temp;                    //如果原数比被比较的数小,则交换。原数就可以取到第一个大的整数(被比较的数组的元素)                    if (a[i] < a[j])                    {                        temp = a[i];                        a[i] = a[j];                        a[j] = temp;                    }                }            }            foreach( int inta in a)            {                Console.WriteLine(inta);            }            Console.ReadLine();        }    }

0 0