读书人

结构体数组冒泡排序有关问题

发布时间: 2013-06-25 23:45:42 作者: rapoo

结构体数组冒泡排序问题
新手求助呵呵


/*排序成功:*/
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(w[i].salary>w[j].salary){temp=w[i];w[i]=w[j];w[j]=temp;}
/*排序失败:*/
for(j=0;j<N-1;j++)
for(i=0;i<N-j;i++)
if(w[i].salary>w[i+1].salary){temp=w[i];w[i]=w[i+1];w[i+1]=temp;}

运行结果有数组元素乱码,想问下是哪里有问题 冒泡排序 C
[解决办法]
其他代码呢
再说成功的那个

for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(w[i].salary>w[j].salary){temp=w[i];w[i]=w[j];w[j]=temp;}


这样效率会高一些

失败的那个,应该是每次把最小的放在最前面吧
但是从第二次开始就不行了,后面的元素比较不到



[解决办法]

for(j=0;j<N-1;j++)
for(i=0;i<N-j-1;i++)//注意边界条件。。否则会越界。。
if(w[i].salary>w[i+1].salary){temp=w[i];w[i]=w[i+1];w[i+1]=temp;}

读书人网 >C语言

热点推荐