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. M - Pots

    You are given two pots, having the volume of A and B liters respectively. The following operations c ...

  2. ERP项目实施记录05

    周四继续进行流程演练,把第一个销售订单的物料给领了出来,走完了"物流". 关于运用一个新系统大概会经历以下阶段: 未知--了解--熟悉--改善--依赖 未知:有期待.担心.抗拒,需 ...

  3. Python与金融量化分析----金融与量化投资

    一:金融了解 金融:就是对现有资源进行重新的整合之后,进行价值和利润的等效流通. 金融工具: 股票 期货 黄金 外汇 基金 ............. 股票: 股票是股份公司发给出资人多的一种凭证,股 ...

  4. li下的ul----多级列表

    <ul id="ul_Style1"> <li>第1级第1行</li> <li> <ul id="ul_Style2 ...

  5. TOP100summit:【分享实录-猫眼电影】业务纵横捭阖背后的技术拆分与融合

    王洋:猫眼电影商品业务线技术负责人.技术专家.主导了猫眼商品供应链和交易体系从0到1的建设,并在猫眼与美团拆分.与点评电影业务融合过程中,从技术层面保障了商品业务的平稳切换,同时也是美团点评<领 ...

  6. css学习_css背景属性及其应用

    css背景属性及其应用 1.背景 2.背景简写 3.背景透明(css3) 4.背景缩放(css3) 5.多背景图片(css3) 6.凹凸文字效果

  7. python字典查询功能

    def fetch(data): print(' 查询功能') print('用户数据是',data) def add(): pass def change(): pass def delete(): ...

  8. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  9. [No000012A]WPF(2/7):布局,容器和布局转换[译]

    概要 在上一篇文章中,我讨论了一些WPF应用的基础知识,它们是使用WPF的基本架构和内部结构.在本文中,我将讨论编写你的第一个WPF程序的基本的东西和怎么在你的窗口中布局控件.这是每一个想使用WPF的 ...

  10. [No0000C8]英特尔快速存储IRST要不要装

    IRST (英特尔快速存储技术)Intel Rapid Storage Technology(简称IRST)又称英特尔快速存储技术. Intel Rapid Start Technolog同样是简称( ...