`
isiqi
  • 浏览: 16491693 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

QSort

 
阅读更多

qsort

  功 能: 使用快速排序例程进行排序
  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));
  各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序
  程序例:
  #include <iostream>
  using namespace std;
  #include <stdlib.h>
  #include <string.h>
  int compare( const void *a, const void *b);
  char * list[5]= {"cat","car","cab","cap","can"};
  int main()
  pascal 例程
  program quicksort;
  const
  max = 100000;
  max = 1000;
  type
  tlist = array[1..max] of longint;
  var
  data : tlist;
  i : longint;
  procedure qsort(var a : tlist);
  procedure sort(l,r: longint);
  var i,j,x,y: longint;
  begin
  i:=l; j:=r;
  x:=a[(l+r) div 2];
  repeat
  while a<x do inc(i);
  while x<a[j] do dec(j);
  if i<=j then
  begin
  y:=a;a:=a[j];a[j]:=y;
  inc(i);dec(x);
  end;
  until i>j;
  if l<j then sort(l,j);
  if i<r then sort(i,r);
  end;
  begin
  sort(1,max);
  end;
  begin
  write('Creating ',Max,' random numbers between 1 and 500000');
  randomize;
  for i:=1 to max do
  data:=random(500000);
  writeln;
  writeln('Sorting...');
  qsort(data);
  writeln;
  for i:=1 to max do
  begin
  write(data:7);
  if (i mod 10)=0 then
  writeln;
  end;
  end.
  c/c++
  c函数qsort()和bsearch()的用法
  使用qsort()排序 并 用 bsearch()搜索是一个比较常用的组合,使用方便快捷。
  qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (__cdecl *comp)(const void *, const void* ) )
  其中base是排序的一个集合数组,num是这个数组元素的个数,width是一个元素的大小,comp是一个比较函数。
  比如:对一个长为1000的数组进行排序时,int a[1000]; 那么base应为a,num应为 1000,width应为 sizeof(int),comp函数随自己的命名。
  qsort(a,1000,sizeof(int ),comp);
  其中comp函数应写为:
  int comp(const void *a,const void *b)
  {
  return *(int *)a-*(int *)b;
  }
  是对一个二维数组的进行排序:
  int a[1000][2]; 其中按照a[0]的大小进行一个整体的排序,其中a[1]必须和a[0]一起移动交换。
  qsort(a,1000,sizeof(int)*2,comp);
  int comp(const void *a,const void *b)
  {
  return ((int *)a)[0]-((int *)b)[0];
  }
  对字符串进行一个排序:
  char a[1000][20];
  qsort(a,1000,sizeof(char)*20,comp);
  int comp(const void *a,const void *b
  {
  return strcmp((char *)a,(char *)b);
  }
  对一个结构体进行排序:
  typedef struct str
  {
  char str1[11];
  char str2[11];
  }str,*stri;
  str strin[100001]=;
  int compare(const void *a,const void *b)
  {
  return strcmp( ((str*)a)->str2 , ((str*)b)->str2 );
  }
  qsort(strin,total,sizeof(str),compare);
  程序例:
  #include<iostream.h>
  #include<stdlib.h>
  #include<string.h>
  #define N 8
  int compare(const void *a,const void *b);
  void main()
  {
  char s[8][10]={"January","February","March","April","May","June","July","September"};
  int i;
  qsort(s,8,sizeof(char)*10,compare);
  for(i=0;i<N;i++)
  cout<<s<<endl;
  }
  int compare(const void *a,const void *b)
  {
  if(strlen((char *)a)!=strlen((char *)b))
  return strlen((char *)a)-strlen((char*)b);
  return (strcmp((char *)a,(char *)b));
  }//vc++ 6.0
  

  // VS2008编译通过,具有代表性的例子
  
#include <stdlib.h>
  #include <stdio.h>
  #include <string.h>

  int compare(const void *arg1,const void *arg2);
  int main(int argc,char **argv)
  {
  int i;
  argv++;
  argc--;
  qsort((void *)argv,(size_t)argc,sizeof(char *),compare);
  for(i=0;i<argc;++i)
  {
  printf("%s ",argv);
  printf("/n");
  }
  }

  int compare(const void *arg1,const void *arg2)
  {
  return _stricmp(*(char **)arg1,*(char **)arg2);
  }

  在运行输入cmd,在qsort.exe 参数1 参数2
  将会排序
分享到:
评论

相关推荐

    C语言中qsort函数用法实例小结

    C语言中的`qsort`函数是用于对内存块中的元素进行排序的标准库函数,它包含在`&lt;stdlib.h&gt;`头文件中。`qsort`函数的使用非常灵活,可以处理不同数据类型的数据,包括基本类型如`int`、`char`、`double`以及结构体等...

    qsort函数具体介绍

    qsort 函数详细介绍 qsort 函数是 C 语言标准库中的一种排序算法,用于对数组进行排序。它是快速排序(Quicksort)算法的一种实现,能够高效地对数组进行排序。下面是 qsort 函数的详细介绍。 一、qsort 函数的...

    分离出的微软qsort算法

    微软的QSort算法是针对C语言标准库中的`qsort`函数的一种优化实现。`qsort`函数在C语言中被广泛用于对数组进行快速排序,它是一个通用的排序算法,适用于各种数据类型。在微软的实现中,可能对性能进行了特定的优化...

    C语言qsort排序大全 多种数据类型的qsort

    在C语言中,`qsort`函数是标准库`&lt;stdlib.h&gt;`中提供的一种通用排序算法,它能够帮助我们对数组进行快速排序。本篇将深入探讨`qsort`的使用,包括其基本原理、参数解析、不同数据类型的排序以及在实际编程中的应用...

    快速排序库函数qsort的调用细则

    快速排序库函数qsort的调用细则 快速排序库函数qsort是C标准库中的一种排序算法,用于对数组进行排序。qsort函数包含在头文件中,需要在函数头部加上#include以便调用。qsort函数有四个参数,分别是参与排序的数组...

    qsort 与sort 的比较

    本文主要讨论两种内置的排序函数:`qsort()` 和 `sort()`。`qsort()` 函数来源于C标准库 `&lt;cstdlib&gt;`,而`sort()` 是C++ STL(标准模板库)中的成员,位于 `&lt;algorithm&gt;` 头文件内。 `qsort()` 函数是一种通用的...

    qsort测试,闲人勿下

    标题中的“qsort测试”指的是一个关于C++标准库中的`qsort`函数的测试程序。这个测试可能包含了对`qsort`函数不同用法的验证,以及与C++标准库中的`std::sort`以及C运行时库(CRT)中的排序函数进行的性能比较。`qsort...

    VC中qsort源代码

    ### VC中qsort源代码解析 #### 知识点概览 在VC(Visual C++)环境中,`qsort`函数是C/C++标准库中用于数组排序的关键函数之一,其内部实现采用了快速排序算法。本文将深入分析VC中`qsort`源代码的核心逻辑、算法...

    二维的qsort,根据其中任何一维进行快速排序

    本文主要探讨如何使用C语言中的`qsort`函数对一个包含多个元素的结构体数组进行排序,并以二维数组为例,详细介绍如何根据其中的一维进行排序。 #### 二、基础知识回顾 1. **结构体**: - 结构体是一种用户自定义...

    C语言qsort函数算法性能测试

    C语言qsort函数算法性能测试 C语言qsort函数是一种高效的排序算法,广泛应用于各个领域。了解qsort函数的算法性能对程序设计和优化具有重要意义。本文将通过实验测试,深入探讨C语言qsort函数的算法性能,并对其...

    qsort使用法和具体举例说明

    qsort 使用法和具体举例说明 qsort 是一种快速排序算法,广泛应用于 C 语言编程中。它可以对数组中的元素进行排序,包括整数、字符、浮点数、结构体等类型的元素。下面是 qsort 使用法和具体举例说明: 函数原型 ...

    qsort函数常见用法v1.1

    ### qsort函数详解及其在ACM竞赛中的应用 #### 一、qsort函数概述 `qsort`函数是C语言标准库中用于通用数组排序的一个强大工具,它使用快速排序算法,提供了高度灵活的排序机制。`qsort`的原型在`&lt;stdlib.h&gt;`...

    七种qsort排序方法

    ### 七种qsort排序方法详解 #### 一、引言 `qsort`是C语言标准库中的一个函数,用于对数组进行快速排序。它提供了极大的灵活性,允许用户自定义比较函数来处理不同类型的数据。本文将详细介绍七种常见的`qsort`排序...

    C快速排序qsort

    在C语言中,`qsort`函数是标准库`stdlib.h`中提供的一种通用排序接口,用于实现快速排序或者其他类型的排序。 `qsort`函数的原型如下: ```c void qsort(void *base, size_t nel, size_t width, int (*compar)...

    qsort的详细用法

    ### qsort函数详解与应用实例 #### 一、qsort函数概述 `qsort`是C语言中的标准库函数,用于对数组中的元素进行排序,它位于`&lt;stdlib.h&gt;`头文件中。此函数适用于各种数据类型,不仅限于基本类型如`int`或`double`,...

    qsort

    函数名称: qsort &lt;br&gt;函数原型: void qsort(void *base, size_t nelem, size_t width, int (*fcmp)(const void *,const void *) &lt;br&gt;函数功能: 使用C.A.R.Hoare排序法对数组base进行排序 &lt;br&gt;函数返回: ...

    C库函数qsort七种使用方法示例

    C 库函数 qsort 七种使用方法示例 本文将对 C 库函数 qsort 进行详细的介绍,并提供七种使用方法示例,帮助 C 语言初学者快速掌握 qsort 函数的使用方法。 一、对 int 类型数组排序 qsort 函数可以对 int 类型...

    qsort测试,对一般人没用

    《深入解析qsort:超越日常应用的编程智慧》 在编程的世界里,排序算法是基础且重要的组成部分。本文将深入探讨C语言中的`qsort`函数,它是一个强大的通用排序工具,尽管对于日常简单编程任务可能显得有些复杂,但...

    qsort的七种用法.txt

    qsort的七种用法

Global site tag (gtag.js) - Google Analytics