ЦG 发表于 2013-11-28 22:37:11

C新手,一个简单的冒泡排序,我现在还有点模糊,想听听解析

void sort(int * a, int len)
{
        int i, j, t;

        for (i=0; i<len-1; ++i)
        {
                for (j=0; j<len-1-i; ++j)
                {
                        if (a > a)//>表示升序 <表示降序
                        {
                                t = a;
                                a = a;
                                a = t;
                        }
                }
        }
}
int main(void)
{
        int a = {10, 2, 8, -8, 11, 0};
        int i = 0;

        sort(a, 6);

        for (i=0; i<6; ++i)
        {
                printf("%d\n", a);
        }
        printf("\n");

        return 0;
}

烽火云烟 发表于 2013-11-28 23:10:45

void sort(int * a, int len)
{
      int i, j, t;

      for (i=0; i<len-1; ++i)//第一个循环,表示冒泡的趟数,按照算法,应该是有多长的数字那么循环几趟
      {
                for (j=0; j<len-1-i; ++j)//第二个循环,表示每趟循环中的位置,就是说,第一次比较0,1两个元素,第二次比较1,2两个元素
                {
                        if (a > a)//>表示升序 <表示降序//比较元素
                        {
                              //交换位置
                              t = a;
                              a = a;
                              a = t;
                        }
                }
      }
}

加了一些注释,看书吧,很简单的。。

loveyaqin1990 发表于 2013-11-29 09:54:41

楼上正解啊。。。不知楼主懂了没?明白的话再去看看快速排序。。:lol:
页: [1]
查看完整版本: C新手,一个简单的冒泡排序,我现在还有点模糊,想听听解析