首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个是不是错了?该如何处理

2012-05-20 
这个是不是错了?我在百度上搜几种排序,首页出来的这个冒泡让我很是头疼,这个函数对不?void bubble(int *a,

这个是不是错了?
我在百度上搜几种排序,首页出来的这个冒泡让我很是头疼,这个函数对不?
void bubble(int *a, int n)
{
  int i, j, temp;
  for(i=0; i<n-1; ++i)
  for(j=i+1; j<n; j++)
  if (a>a[j]) {
  temp = a;
  a = a[j];
  a[j] = temp;
  }
}
这个a让我很是头疼,对吧? 不对吧?[/color]

[解决办法]

探讨
我在百度上搜几种排序,首页出来的这个冒泡让我很是头疼,这个函数对不?
void bubble(int *a, int n)
{
int i, j, temp;
for(i=0; i<n-1; ++i)
for(j=i+1; j<n; j++)
if (a>a[j]) {
temp = a;
a = a[j];
a[j] = temp;
}
}
……

[解决办法]
必须不对啊。a都没有初值,怎么比较呢??
[解决办法]
如果书上是这么写的,那么楼主立即将那本书烧掉!

给一个正确的参考实现:
C/C++ code
void bubble_sort(int* arr, int n){    int key;    for(int i = 0; i < n; ++i)    {        for(int j = 1; j < n - i; ++j)        {            if(*(arr + j) < *(arr + j - 1))            {                key = *(arr + j);                *(arr + j) = *(arr + j - 1);                *(arr + j - 1) = key;            }        }    }} 

热点排行