日期:2014-05-17  浏览次数:20688 次

关于排序算法稳定性的疑惑

        int [] a={6,2,2,1,5}
        //冒泡排序(稳定)
        public static void BubbleSort(int[] a, ref int count)
        {
           int n = a.Length - 1;
            int i, j;
            int tmp;
            bool isChange;
            for (i = 0; i < n; i++)
           {
              isChange = false;
              for (j = 0; j < n - i; j++)
                {
                  if (a[j] > a[j + 1])//若果条件改成a[j]>=a[j+1] 就算相邻的两个数相等位置也会发生变化
                     {
                        tmp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = tmp;
                        isChange = true;
                    }
                    count++;
                }
                if (!isChange)
                {
                    return;