sort:

一、对int类型数组排序

int a[100];

int cmp ( int a , int b ) //不必强制转换

{

return a < b;//升序排列。

sort (a(数组名) , a+100(数组最后一个元素), cmp);

头文件 #include<algorithm>,属于C++中STL

qsort:

一、对int类型数组排序

int a[100];

int cmp ( const void *a , const void *b ) //此处必须强制转换

{

return *(int *)a - *(int *)b;//升序排列。

所以在前面的字符的值一定小于后面的字符。

那么,对于a b,如果a的值>b的值,就说明在字母表中a在b的后面

}

qsort(a(数组名),100(数组长度),sizeof(a[0])(数组元素的宽度),cmp);  头文件#include <stdlib.h>

bsearch :(一般与qsort连用)

以int 型数组为例

bsearch 返回一个地址

int *p;

  1. p = (int *)bsearch(&k(关键字地址), a(数组名), n(数组长度), sizeof(a[0]), cmp);//C++需要(int *)强制转换,C不用
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int cmp(const void *p, const void *q)
  4. {
  5. return (*(int *)p - *(int *)q);
  6. }
  7. int main()
  8. {
  9. int a[1000001];
  10. int n,k,*p;
  11. while(~scanf("%d",&n))
  12. {
  13. for(int i = 0;i<n;i++)
  14. {
  15. scanf("%d",&a[i]);
  16. }
  17. scanf("%d",&k);
  18. qsort(a, n, sizeof(a[0]), cmp);
  19. p = bsearch(&k, a, n, sizeof(a[0]), cmp);
  20. (p == NULL) ? puts("NO") : puts("YES");
  21. }
  22. return 0;
  23. }

sort(排序) qsort(快排) bsearch(二分查找)的更多相关文章

  1. qsort 快排函数(C语言)

    qsort 快排函数(C语言) 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, ...

  2. c语言中使用自带的qsort(结构体排序)+ 快排

    c中没有自带的sort函数emm 不过有自带的qsort函数 (其实用法都差不多(只是我经常以为c中有sort 头文件要用 #include <stdlib.h> 一定要重新把指针指向的值 ...

  3. 排序 之 快排、归并、插入 - <时间复杂度>----掌握思想和过程

    俗话说:天下武功无坚不破,唯快不破.对于算法当然也是要使用时间最短.占用空间最小的算法来实现了. 注意:我代码里面打的备注仅供参考,建议不要背模板(因为没有固定的模板),可以写一个数列按着代码跑两圈或 ...

  4. 普林斯顿大学算法课 Algorithm Part I Week 3 重复元素排序 - 三路快排 Duplicate Keys

    很多时候排序是为了对数据进行归类,这种排序重复值特别多 通过年龄统计人口 删除邮件列表里的重复邮件 通过大学对求职者进行排序 若使用普通的快排对重复数据进行排序,会造成N^2复杂度,但是归并排序和三路 ...

  5. poj1007 qsort快排

    这道题比较简单,但通过这个题我学会了使用c++内置的qsort函数用法,收获还是很大的! 首先简要介绍一下qsort函数. 1.它是快速排序,所以就是不稳定的.(不稳定意思就是张三.李四成绩都是90, ...

  6. 【js基础】js排序方法——快排+堆排+插排+选择排

    快排 Array.prototype.fastSort = function(){ var arr = this; function sort(left, right, arr){ if( left ...

  7. Java 排序(快排,归并)

    Java 排序有Java.util.Arrays的sort方法,具体查看JDK API(一般都是用快排实现的,有的是用归并) package yxy; import java.util.Arrays; ...

  8. 排序--QuickSort 快排

    Quick の implementation 快排,就像它的名字一定,风一样的快.基本上算是最快的排序算法了.快排的基本思想是选择一个切分的元素.把这个元素排序了.所有这个元素左边的元素都小于这个元素 ...

  9. 排序之快排(JS)

    快速排序(Quicksort)是对冒泡排序的一种改进. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...

随机推荐

  1. mtr

    一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以结合ping ns ...

  2. JS正则校验

    /** 用途:检查输入字符串是否为空或者全部都是空格 输入:str:字符串 返回: 如果全是空返回true,否则返回false */ function isNull(str) { if (str == ...

  3. Unity Editor工具-代码里复制Component

    //CopyComponent ublic static T CopyComponent<T>(T original, GameObject destination) where T : ...

  4. A - Wall

    Once upon a time there was a greedy King who ordered his chief Architect to build a wall around the ...

  5. 关于ICO的一些理解

    第一次看到ICO,估计很多人都处于懵逼的状态,感觉很抽象. 提到IOC可能想到的下一个词语就是DI IOC:控制反转 DI:依赖注入 那么什么是控制反转呢? 我以前对这个概念也很模糊,最近在知乎上看到 ...

  6. (广度搜索)A - Prime Path(11.1.1)

    A - Prime Path(11.1.1) Time Limit:1000MS    Memory Limit:65536KB    64bit IO Format:%I64d & %I64 ...

  7. C# 各类常见Exception 异常信息

    一直对报错有些迷惑的地方,什么时候try,catch那些Exception更合适,报错信息更能快速定位问题所在... 转载链接← 正文 Exception: 所有异常对象的基类. SystemExce ...

  8. python中的os

    import sys, os print(__file__) # 绝对路径,实际是文件名 /Users/majianyu/Desktop/test/bin/bin.py print(os.path.a ...

  9. React 入门实例

    React 入门实例教程 一.安装 React 的安装包,可以到官网下载. $ git clone git@github.com:ruanyf/react-demos.git 如果你没安装 git, ...

  10. ASP_NET实现界面无刷新的DropdownList两级联动效果

    所谓DropdownList联动,也就是在选一个DropdownList的时候使另外一个DropdownList的内容更新(如选省份时显示所属城市),按常规的方法那就是在第一个DropdownList ...