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;
}
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;
}
}
}
}
加了一些注释,看书吧,很简单的。。
楼上正解啊。。。不知楼主懂了没?明白的话再去看看快速排序。。:lol:
页:
[1]