`
javaFlood
  • 浏览: 10527 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自己写的标准qsort

阅读更多
#include <stdio.h>

void qsort(int a[], int s, int e) {
    if(s >= e) {
        return;
    }
    int i = s, j = e, t = 0;
    while (i < j) {
        while (i < j && a[j] > a[s]) {
            --j;
        }
        while (i < j && a[i] >= a[s]) {
            ++i;
        }
        t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
    t = a[i];
    a[i] = a[s];
    a[s] = t;
    qsort(a, s, i - 1);
    qsort(a, i + 1, e);
}

#define NUM 10
int main(int argc, char **argv) {
    int a[NUM] = {9, 2, 6, 3, 5, 0, 8, 7, 4, 1};
    qsort(a, 0, NUM - 1);
    for (size_t i = 0; i < NUM; ++i) {
        fprintf(stdout, "%d ", a[i]);
    }
    fprintf(stdout, "\n");
}

//没有编译,如有写错请见谅。
分享到:
评论

相关推荐

    C++Effective的代码,qsort的使用,字符转化的过程,内核泄漏检测.zip

    其中,"qsort的使用"涉及到的是C语言标准库中的排序函数。尽管C++有更现代的排序工具如`std::sort`,但`qsort`仍然是一个值得了解的经典算法。`qsort`接受一个指向数组的指针、数组元素个数、每个元素的大小以及一个...

    C 标准库 源代码

    通过对标准库源代码的学习,开发者能够更好地掌握C语言的本质,写出更高效、更健壮的代码。 总之,《C标准库源代码》是一份宝贵的教育资源,它不仅让我们了解C语言的底层机制,还提供了一个学习和参考的实例,帮助...

    C标准库源代码 很全

    9. 链表和队列:虽然C标准库没有直接提供链表或队列的数据结构,但提供了`malloc`和`free`等工具,开发者可以自己实现这些数据结构。 10. 错误处理:`assert.h`头文件提供了断言机制,用于在调试阶段检查程序的正确...

    [C标准库].P.J.Plauger.扫描版.pdf

    5. 标准工具库:通常在`&lt;stdlib.h&gt;`头文件中,提供了多种实用工具,包括动态内存管理、程序控制、随机数生成等函数,例如`malloc`、`free`、`qsort`、`exit`等。 6. 通用工具库:在`&lt;assert.h&gt;`、`&lt;limits.h&gt;`、`...

    C标准库 中英文

    - `qsort` 提供快速排序功能,适用于任意类型的数据。 - `bsearch` 实现二分查找。 10. **位操作**: - `bitwise operators`: `&`(按位与),`|`(按位或),`^`(按位异或),`~`(按位取反)以及左移和右移...

    《C标准库》

    7. **排序和搜索(Sorting and Searching)**:`&lt;stdlib.h&gt;`和`&lt;string.h&gt;`中的`qsort`、`bsearch`等函数,提供了基本的排序和查找功能。了解它们的内部工作原理,可以提高算法的实现效率。 8. **时间处理(Time ...

    C语言标准函数库 包括全部常用库函数

    12. **字符分类和转换库**(ctype.h): `isalpha`、`isdigit`、`isspace`等函数用于检查字符类型,`tolower`和`toupper`实现字符大小写的转换。 以上只是C语言标准库的一部分,每个函数都有其特定的用途和用法,掌握...

    c语言标准库源码大全

    3. 数组和内存管理:`stdlib.h`提供了`malloc`、`calloc`、`realloc`和`free`等内存分配和释放函数,以及`rand`随机数生成和`qsort`排序函数。 4. 数学运算:`math.h`头文件包含了基本的数学函数,如平方根`sqrt`、...

    c标准库函数 源码实现

    5. **排序与搜索函数**:`qsort` 是一个通用的快速排序函数,`bsearch` 则用于二分查找。了解它们的源码,有助于掌握高级排序和搜索算法。 6. **时间处理函数**:`time`、`localtime`、`strftime` 等函数用于处理...

    ANSI《C标准库》P.J.plauger的著作;也就是我们经常调用的库函数接口

    8. 非标准但常用的功能:如qsort用于对数组进行快速排序,rand和srand提供随机数生成。 P.J.Plauger的著作详细解释了这些函数的工作原理、参数含义和返回值,通过阅读本书,开发者不仅可以了解如何使用这些库函数,...

    C标准源代码 C函数库

    5. 集合和排序:`stdlib.h`中的`qsort()`提供了一种通用的排序机制,源码中可能会包含不同的排序算法实现。 6. 时间和日期:`time.h`中的`time()`、`ctime()`等函数处理时间,源码中会涉及到系统调用和时间转换。 ...

    C标准库函数

    10. **集合数据结构**: `stdlib.h`中的`qsort`函数提供了一种通用的排序算法,`setjmp`和`longjmp`用于非局部跳转,实现异常处理机制。 11. **线程和同步**: 虽然C标准库本身不包含线程和同步支持,但在C11标准中...

    GNU C库参考手册.pdf

    8. **搜索和排序**:提供了各种排序和查找算法的函数,如`qsort`, `bsearch`等,适用于数组和列表的处理。 9. **模式匹配**:介绍正则表达式的使用,如`regex`函数族,用于文本模式的匹配和搜索。 10. **输入/输出...

    C标准库函数的头文件.docx

    - `qsort`:通用排序函数,头文件 `stdlib.h`。 - `bsearch`:二分查找,也在 `stdlib.h`。 10. **其他**: - `rand`, `srand`, `rand_r`:随机数生成,头文件 `stdlib.h`。 - `atof`, `atoi`, `atol`:字符串...

    C语言+CSV文件读写+Socket传输

    在C语言中,可以使用标准库中的`fopen`函数打开文件,`fgets`或`fscanf`读取文件内容,`fprintf`或`fwrite`写入数据。CSV文件的特点是每一行数据由逗号分隔,因此在读取时需要注意解析这些分隔符。在写入时,需要...

    C++ STL体系结构、编程方法及存在的问题

    下表展示了STL在数值计算方面与C语言标准排序函数qsort以及其他手写代码和算法的比较结果。 | 数据类型 | C语言qsort | 手写代码 | Numerical Recipes | STL | |----------|------------|----------|--------------...

    C语言标准库函数

    9. 递归和算法:虽然不是特定的库函数,但C语言支持递归函数(如`factorial()`计算阶乘)和各种算法实现(如排序算法`qsort()`,搜索算法`bsearch()`)。 10. 错误处理:`errno`全局变量存储了最近一次系统调用或...

    C语言写得学生管理系统

    C语言提供了标准库函数`fopen()`、`fwrite()`、`fread()`等用于文件操作。在学生信息管理系统中,我们可以先将链表中的所有学生信息序列化为二进制数据,然后写入文件;反之,从文件读取数据时,再反序列化回链表。 ...

    c语言函数库

    - `qsort`:快速排序。 - `bsearch`:二分查找。 6. 时间和日期:time.h - `time`,`clock`:获取当前时间戳和程序运行时间。 - `strftime`,`localtime`:处理日期和时间格式。 7. 错误处理和诊断:assert.h ...

    C语言库函数C语言库函数

    C语言库函数分为标准库和非标准库,其中标准库最为常用,遵循ANSI C或C11等标准。 1. **标准输入/输出库**:这是C语言的基础,包括`printf`、`scanf`等函数,用于数据的输出和输入。`printf`用于格式化输出,可以...

Global site tag (gtag.js) - Google Analytics