为了账号安全,请及时绑定邮箱和手机立即绑定

请问c语言运用sort 排序函数,需要的头文件是什么?

/ 猿问

请问c语言运用sort 排序函数,需要的头文件是什么?

C
慕粉4167745 2019-09-20 15:14:35

c语言运用sort 排序函数,需要的头文件是什么?


查看完整描述

5 回答

?
慕容森

  sort不属于C语言的标准函数,所以也没有相应的头文件。但是可以自定义。

  排序方法很多,程序都很简单,都能自定义。

  常用的有:

  1. 直接插入排序:

     

    void InsertSort(LineList R[],int n)

    { int i,j;

     for (i=2;i<=n;i++)

        if( R[i].key<R[i-1].key)

           {R[0]=R[i];/*监视哨*/

             j=i-1;

             while (R[0].key<R[j].key)

        {R[j+1]=R[j];j--;}

    R[j+1]=R[0];

    }

    }

  2. 直接选择排序

     

    void SelectSort(LineList R[],int n)

    {int i,j,k;LineList tmp;

    for (i=0;i<n-1;i++)

    {  k=i;

      for (j=i+1;j<n;j++)

        if (R[j].key<R[k].key)  k=j; tmp=R[i]; R[i]=R[k];R[k]=tmp;

    }

    }

  3. 冒泡排序

     

    void BubbleSort(LineList R[],int n)

    {int i,j,exchange;

       LineList tmp;

       for (i=0;i<n-1;i++)

         {exchange=0;

            for (j=n-1;j>i;j--)

            if (R[j].key<R[j-1].key)  

              { tmp=R[j];  /*R[j]与R[j-1]

                R[j]=R[j-1];R[j-1]=tmp;

                exchange=1;}

         if (exchange==0) return;

       }

    }

  4. 还有希尔排序、快速排序、归并排序、堆排序等等,一般的《数据结构》都有排序一章,可参阅。

     



查看完整回答
反对 回复 2019-09-22
?
幕布斯5086720

sort(),qsort()排序函数
一.sort函数
常用于C++中,头文件为algorithm.h。
用法:
sort(first,last)
在[first, last)中的元素进行排序按升序排列

注意:sort默认排序后是升序。如果要想按降序排列,需自己编写一个比较函数来实现。

函数名...................功能描述

sort........................对给定区间所有元素进行排序
stable_sort.........对给定区间所有元素进行稳定排序
partial_sort........对给定区间所有元素部分排序
partial_sort_copy..........对给定区间复制并排序
nth_element...................找出给定区间的某个位置对应的元素
is_sorted...........................判断一个区间是否已经排好序
partition...........................使得符合某个条件的元素放在前面
stable_partition............相对稳定的使得符合某个条件的元素放在前面

二、qsort()函数

功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序


查看完整回答
反对 回复 2019-09-22
?
狐的传说

stdlib.h头文件中。
有qsort() //快速排序
qsort函数,也就是快速排序算法,在C的<stdlib>库中,需加入头文件#include <cstdlib> 或#include <stdlib.h>。

调用qsort函数需要写cmp比较函数。
给出按升序排列的例子:
int cmp(const void* a, const void* b)  //注意这里是int{return (int*)a - (int*)b;}

调用:
qsort(a, n, sizeof(int), cmp);//a为数组,n为个数

如果需要按照自己的意愿排列,那么同样重写cmp比较函数,就可以完成,和sort函数类似。时间复杂度为O(n log n),但是某些情况要比sort函数好。


查看完整回答
反对 回复 2019-09-22
?
慕桂英3389331

#include<iostream.h> :cin>>... (输入函数) ; cout<<...(输出函数)

2
#include<stdlib.h> :(1)void exit(int)函数 终止程序运行
(2)int rand()函数 能够返回0~32767之间的随机整数
(3)rand()%n可以产生0~n-1 范围的任意随机整数
(4)void* calloc(unsigned int n,unsigned int size)函数
用来动态分配n个连续存储位置;
(5)void malloc(int size)函数 用来动态分配大小为size个字节
的存储空间;
(6)void realloc(int size) 用来动态分配大小为size个字节
的"新"存储空间;
(7)void free(void *p) 释放由参数p所指向的动态存储空间

3
#include<string.h> 字符串操作的头文件
(1)int strlen(const char *s):求串长度
(2) char strcpy(char *dest,const char *src) 串复制
(3) ... strcat(str1,str2) 串连接
(4) ... strcmp(str1,str2) 串比较
(5) ... strchr(str,字符) 串定位
(6) ... strrchr(str,字符) 串右 定位
(7) ... strstr(str1,str2) 串查找(在str1中找str2)





查看完整回答
反对 回复 2019-09-22
?
喵喵时光机

#include <algorithm>
#include <iostream>
using namespace std;
main()
{
int a[11]={2,4,8,5,7,1,10,6,9,3};//a的长度=待排数据个数+1
sort(a,a+10);//对[a,a+10)排序
for(int i=0;i<10;++i) cout<<a[i]<<endl;
}


查看完整回答
反对 回复 2019-09-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信