lib C函数

本文详细介绍了C语言中的qsort函数,包括其使用方法和应用场景。通过多个实例,如int、double、字符和结构体数组的排序,展示了qsort函数的强大功能,特别是针对结构体的排序,包括一级和二级排序策略。同时,文章还探讨了字符数组和字符串数组的排序,并解析了指针类型的细节。
摘要由CSDN通过智能技术生成

函数1:qsort函数

http://www.cnblogs.com/sooner/archive/2012/04/18/2455011.html

No.1、手工实现QuickSort:

基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

#include<stdio.h>
#include<stdlib.h>
void QuickSort(int *A,int left,int right)
{
    if(left>=right) return;
    int x=A[(left+right)>>1],low=left,high=right;
    while(low<high)
    {
        while(A[low]<x)
            low++;
        while(A[high]>x)
            high--;
        if(low<=high)
        {
            int Temp=A[low];
            A[low]=A[high];
            A[high]=Temp;
            low++;
            high--;
        }
    }
    QuickSort(A,left,high);
    QuickSort(A,low,right);
}
int main()
{
    int length,i,r[10000];
    scanf("%d",&length);
    for(i=1;i<=length;i++)
        scanf("%d",&r[i]);
    QuickSort(r,1,length);
    for(i=1;i<=length;i++)
        printf(" %d",r[i]);
    printf("\n");
    system("pause");
    return 0;
}
或者:

#include<stdio.h>
#include<stdlib.h>
int QKPass(int r[],int left,int right)
{
    int low,high,x;
    x=r[left];//选择基准记录
    low=left;
    high=right;
    while(low<high)
    {
        while(low<high&&r[high]>=x)//从右到左找到小于x的记录
            high--;
        if(low<high)
        {
            r[low]=r[high];//找到后进行替换
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部分内容:  用C 语言编程时,通常要建立一些用户函数。如果这些函数具有通用性,一般的方法是将它们作成头文件,当需要时用“#include”命令将其包含到源程序之中,以提高编程效率。但在特定的程序中一般仅使用这些函数的一部分,若用上述方法包含所有函数,编译器在编译的时候会把所有包含进的函数都进行编译,这无疑会使源程序变得庞大而难于理解,并会影响执行效率。建立用户目标模块库(lib文件)可以解决这个问题,你可以事先把有特定功能的通用的子函数集编译完成后生成的obj文件打入lib文件,当链接器tlink.exe在进行链接操作时,便只会把程序内部用到的通用函数所在的obj文件链接进来(已验证:不能定位到具体函数),这样生成的obj文件便会更精简,生成的exe文件也更小。   其实,一个lib文件是obj文件的集合。当然,其中还夹杂着其他一些辅助信息,目的是为了让编译器能够准确找到对应的obj文件。我们可以通过tlib.exe(在tc2.0下的根目录)来对lib文件进行操作,你可以把自己生成的obj文件通过tlib命令加入到一个lib文件中,也可以把lib文件内的obj文件进行删除操作,还可以把内部的obj文件给提取出来。明白了lib文件的大致结构以及对它的具体操作,在学习C语言的过程中,就会又多了一个切入点对C语言具体实现进行研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值