排序算法-冒泡算法

代码参考自:http://blog.csdn.net/morewindows/article/details/6657829

void Swap(int n, int m)
        {
            int temp;
            temp = m;
            m = n;
            n = temp;
        }

        void BubbleSort1(int[] s, int n)
        {
            int i, j;
            for (i = 0; i < n; i++)
            {
                for (j = 1; j < n - i; j++)
                {
                    if (s[j - 1] > s[j])
                        Swap(s[j - 1], s[j]);
                }
            }
        }

        //设置一个标志,如果这一趟发生了交换,则为true,否则为false
        void BubbleSort2(int[] s, int n)
        {
            int j, k;
            bool flag;

            k = n;
            flag = true;
            while (flag)
            {
                flag = false;
                for (j = 1; j < k; j++)
                {
                    if (s[j - 1] > s[j])
                    {
                        Swap(s[j - 1], s[j]);
                        flag = true;
                    }
                    k--;
                }
            }
        }

        void BubbleSort3(int[] s, int n)
        {
            int j, k;
            int flag;

            flag = n;
            while (flag > 0)
            {
                k = flag;
                flag = 0;
                for (j = 1; j < k; j++)
                    if (s[j - 1] > s[j])
                    {
                        Swap(s[j - 1], s[j]);
                        flag = j;
                    }
            }
        }

 

posted on 2014-03-31 22:27  清水伊人  阅读(101)  评论(0)    收藏  举报

导航