码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2018-07-22 20:03:49      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:ring   pre   数组   sort   span   before   break   after   tmp   

public class BubbleSort
    {

        /*
         * 冒泡排序
         *
         * 参数说明:
         *     a -- 待排序的数组
         *     n -- 数组的长度
         */
        public static void bubbleSort1(int[] a, int n)
        {
            int i, j;

            for (i = n - 1; i > 0; i--)
            {
                // 将a[0...i]中最大的数据放在末尾
                for (j = 0; j < i; j++)
                {

                    if (a[j] > a[j + 1])
                    {
                        // 交换a[j]和a[j+1]
                        int tmp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = tmp;
                    }
                }
            }
        }

        /*
         * 冒泡排序(改进版)
         *
         * 参数说明:
         *     a -- 待排序的数组
         *     n -- 数组的长度
         */
        public static void bubbleSort2(int[] a, int n)
        {
            int i, j;
            int flag;                 // 标记

            for (i = n - 1; i > 0; i--)
            {

                flag = 0;            // 初始化标记为0
                                     // 将a[0...i]中最大的数据放在末尾
                for (j = 0; j < i; j++)
                {
                    if (a[j] > a[j + 1])
                    {
                        // 交换a[j]和a[j+1]
                        int tmp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = tmp;

                        flag = 1;    // 若发生交换,则设标记为1
                    }
                }

                if (flag == 0)
                    break;            // 若没发生交换,则说明数列已有序。
            }
        }

        public static void Main(String[] args)
        {
            int i;
            int[] a = { 10, 20, 30, 40, 50, 60 };

            Console.WriteLine("before sort:");
            for (i = 0; i < a.Length; i++)
                Console.WriteLine("%d ", a[i]);
            Console.WriteLine("\n");

            //bubbleSort1(a, a.Length);
            bubbleSort2(a, a.Length);

            //Console.WriteLine("after  sort:");
            //for (i = 0; i < a.Length; i++)
            //    Console.WriteLine("%d ", a[i]);
            //Console.WriteLine("\n");
        }
    }

 

冒泡排序

标签:ring   pre   数组   sort   span   before   break   after   tmp   

原文地址:https://www.cnblogs.com/chrisghb8812/p/9351089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!