| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 384 人关注过本帖
标题:大家帮我看看这个冒泡排序错哪了。。。谢谢了
只看楼主 加入收藏
Invariably
Rank: 2
等 级:论坛游民
帖 子:54
专家分:46
注 册:2010-9-18
结帖率:90%
收藏
已结贴  问题点数:0 回复次数:5 
大家帮我看看这个冒泡排序错哪了。。。谢谢了
void BubbleSort(sqlist*L)
{
    for(int i=L->listsize;i>=1;i--)
    {
        for(int j=1;j<=i;j++)
        {
            if(L->elem[j]>L->elem[j+1])  
            {
                L->elem[0]=L->elem[j+1];
                L->elem[j+1]=L->elem[j];
                L->elem[j]=L->elem[0];

            }
        }
    }
2011-06-26 17:28
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
这个一定要自己试着追踪一下,调试也是一个很重要的技术,要平时多练一练。
2011-06-26 18:37
Invariably
Rank: 2
等 级:论坛游民
帖 子:54
专家分:46
注 册:2010-9-18
收藏
得分:0 
追踪过了,但是还是不知道该怎么该啊
2011-06-26 23:09
ligang222222
Rank: 2
等 级:论坛游民
帖 子:4
专家分:19
注 册:2011-6-24
收藏
得分:7 
我也是菜鸟哈,不过,我觉得你的程序有点奇怪,L->elem[0]不是其中数组中的一个元素?而且你的数组元素个数是listsize,你还能出现element[listsize]?
2011-06-27 10:00
Invariably
Rank: 2
等 级:论坛游民
帖 子:54
专家分:46
注 册:2010-9-18
收藏
得分:0 
#define maxsize 10*10*10*10/*分配内存空间*/
typedef int ElemType;
typedef struct
{
    ElemType  *elem;
    int length;//线性表的当前长度
    int listsize;//线性表大小.。。。。10
}sqlist;
int initlist(sqlist* L)
{/*初始化顺序表*/
    L->elem=(ElemType *)malloc((maxsize+1)* sizeof(ElemType));
    if(!L->elem)
        return 0;
    L->length = 0;
    L->listsize = maxsize;
    return 1;
}//20
void creatlist(sqlist*L)
{
    int i=0;
    srand((unsigned)time(NULL));
    while(i<=L->listsize)
    {
        L->elem [++i]=rand();
        L->length ++;
    }
}
void printlist(sqlist&L)
{
    int i=1;
    while(i<=L.listsize)
    {
        cout<<L.elem[i]<<endl;
        i++;
    }
}
这是个查找表,第一个元素没有用到,一般只做监察哨,有时候也可以作为交换用的空间
2011-06-27 12:15
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:7 
程序代码:
#include <string.h>
#include <stdlib.h>

void swap(void * p1, void * p2, unsigned size) {
    void * temp = malloc(size);
    memcpy(temp, p1, size);
    memcpy(p1, p2, size);
    memcpy(p2, temp, size);
    free(temp);
}

void bubble_sort(void * data,
                 unsigned num,
                 unsigned size,
                 int (* compare)(const void *, const void *))

 {
    int i, j, flag = 1;
    for(i = 0; i < num && flag; i++) {
        flag = 0;
        for(j = 0; j < num - i - 1; j++) {
            if(compare(data + j * size, data + (j + 1) * size) > 0) {
                swap(data + j * size, data + (j + 1) * size, size);
                flag = 1;
            }
        }
    }
}

My life is brilliant
2011-06-27 13:27
快速回复:大家帮我看看这个冒泡排序错哪了。。。谢谢了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017420 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved