标题:哪位帮忙写下冒泡法和quicksort法的排序代码,谢了
只看楼主
moridiansha
Rank: 6Rank: 6
来 自:承德
等 级:侠之大者
威 望:4
帖 子:254
专家分:417
注 册:2009-10-21
结帖率:75%
已结贴  问题点数:20 回复次数:2 
哪位帮忙写下冒泡法和quicksort法的排序代码,谢了
1.  问题描述:

将一组无序数列按一定规律排序。

2.  问题的解决方案:

根据问题的描述,可以按照要求的功能采用结构化的设计思想。

(1)       数列的赋值要求用函数实现。

(2)       使用“冒泡法”进行排序,用函数实现并统计排序次数。

(3)       使用“quicksort法”进行排序,用函数实现并统计排序次数。

(4)       比较以上两种排序方法的优劣。

按大小顺序排列,用大一学的知识写,谢谢各位了

搜索更多相关主题的帖子: 代码 quicksort 冒泡 
2010-05-29 09:02
rib
Rank: 4
等 级:业余侠客
帖 子:95
专家分:252
注 册:2009-3-30
得分:20 
程序代码:
/*qsort用法*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LEN 10

void fillarray(double a[], int n);
void showarray(double a[], int n);
int mycomp(const void *p1, const void *p2);
int main(void)
{
    double a[LEN];
    fillarray(a, LEN);
    puts("排序前数字清单:");
    showarray(a, LEN);
    qsort(a, LEN, sizeof(double), mycomp);
    puts("排序后数字清单:");
    showarray(a, LEN);

    return 0;
}

void fillarray(double a[], int n)
{
    int index;

    srand((unsigned)time(NULL));
    for (index = 0; index < n; index++)
    {
        a[index] = (double)(rand()/(rand()+0.1));
    }
}

void showarray(double a[], int n)
{
    int index;
    for (index = 0; index < n; index++)
    {
        printf("%12.4f",a[index]);
        if (index % 6 == 5)
        {
            putchar('\n');
        }
    }
    if (index % 6 != 0)
    {
        putchar('\n');
    }
}

int mycomp(const void *p1, const void *p2)
{
    const double * a = (const double *)p1;
    const double * b = (const double *)p2;
    if (*a < *b)
        return -1;
    else if (*a == *b)
        return 0;
    else
        return 1;
}
冒泡就不写了
2010-05-29 09:19
moridiansha
Rank: 6Rank: 6
来 自:承德
等 级:侠之大者
威 望:4
帖 子:254
专家分:417
注 册:2009-10-21
得分:0 
回复 2楼 rib
谢谢了

www.qysy.tk
2010-05-29 09:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-308576-1-1.html




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

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