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

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

2013-06-25 
结构体数组冒泡排序问题新手求助呵呵/*排序成功:*/for(i0iNi++)for(j0jNj++)if(w[i].salaryw[j].

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


/*排序成功:*/
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;}

热点排行