sort(排序) qsort(快排) bsearch(二分查找)
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;
- p = (int *)bsearch(&k(关键字地址), a(数组名), n(数组长度), sizeof(a[0]), cmp);//C++需要(int *)强制转换,C不用
- #include <stdio.h>
- #include <stdlib.h>
- int cmp(const void *p, const void *q)
- {
- return (*(int *)p - *(int *)q);
- }
- int main()
- {
- int a[1000001];
- int n,k,*p;
- while(~scanf("%d",&n))
- {
- for(int i = 0;i<n;i++)
- {
- scanf("%d",&a[i]);
- }
- scanf("%d",&k);
- qsort(a, n, sizeof(a[0]), cmp);
- p = bsearch(&k, a, n, sizeof(a[0]), cmp);
- (p == NULL) ? puts("NO") : puts("YES");
- }
- return 0;
- }
sort(排序) qsort(快排) bsearch(二分查找)的更多相关文章
- qsort 快排函数(C语言)
qsort 快排函数(C语言) 函数原型 void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, ...
- c语言中使用自带的qsort(结构体排序)+ 快排
c中没有自带的sort函数emm 不过有自带的qsort函数 (其实用法都差不多(只是我经常以为c中有sort 头文件要用 #include <stdlib.h> 一定要重新把指针指向的值 ...
- 排序 之 快排、归并、插入 - <时间复杂度>----掌握思想和过程
俗话说:天下武功无坚不破,唯快不破.对于算法当然也是要使用时间最短.占用空间最小的算法来实现了. 注意:我代码里面打的备注仅供参考,建议不要背模板(因为没有固定的模板),可以写一个数列按着代码跑两圈或 ...
- 普林斯顿大学算法课 Algorithm Part I Week 3 重复元素排序 - 三路快排 Duplicate Keys
很多时候排序是为了对数据进行归类,这种排序重复值特别多 通过年龄统计人口 删除邮件列表里的重复邮件 通过大学对求职者进行排序 若使用普通的快排对重复数据进行排序,会造成N^2复杂度,但是归并排序和三路 ...
- poj1007 qsort快排
这道题比较简单,但通过这个题我学会了使用c++内置的qsort函数用法,收获还是很大的! 首先简要介绍一下qsort函数. 1.它是快速排序,所以就是不稳定的.(不稳定意思就是张三.李四成绩都是90, ...
- 【js基础】js排序方法——快排+堆排+插排+选择排
快排 Array.prototype.fastSort = function(){ var arr = this; function sort(left, right, arr){ if( left ...
- Java 排序(快排,归并)
Java 排序有Java.util.Arrays的sort方法,具体查看JDK API(一般都是用快排实现的,有的是用归并) package yxy; import java.util.Arrays; ...
- 排序--QuickSort 快排
Quick の implementation 快排,就像它的名字一定,风一样的快.基本上算是最快的排序算法了.快排的基本思想是选择一个切分的元素.把这个元素排序了.所有这个元素左边的元素都小于这个元素 ...
- 排序之快排(JS)
快速排序(Quicksort)是对冒泡排序的一种改进. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...
随机推荐
- HTML+CSS:圆形和圆角图片格式
效果展示 实现代码 <!DOCTYPE html> <html> <head> <title>JcMan</title> <style ...
- springboot JPA
JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简化现有的持久 ...
- Logistic 与 softmax
之前写的一篇感觉太 Naive ,这里重新写一篇作为总结.Logistic 与 Softmax 都是一种概率判别模型(PRML p203),Softmax 通常用在 Neural Network 里最 ...
- 我心目中的Dream-购物车
功能要求: 1.要求用户输入自己拥有的总资产,例如:30000 2.显示商品列表的序号,商品名称,商品价格,让用户根据序号选择商品,然后加入购物车 例如: 1 Macbook 12000 2 Logi ...
- NOIP2018旅游记
2018.12.4更新: GD分数线出了,1=分数线310,1=了 好歹能和cyp交代了吧) 2018.11.28更新: 不好意思,太懒了,加上我也不记得后来发生什么了,总之就这样太监了. noip2 ...
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享 ...
- MySQL5.6启动报错The server quit without updating PID file
Mysql启动报错如下: [root@db01 opt]# service mysqld start Starting MySQL.... ERROR! The server quit without ...
- AFN拿不到cookie,无法存储cookie
跟雅思的项目对比,发现 task.currentRequest.allHTTPHeaderFields 这样不能拿到cookie 应该这样取: NSHTTPURLResponse *response ...
- 转:centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
centos7/rhel7安装较高版本ruby2.2/2.3/2.4+ 环境需求: 在Centos7.3中,通过yum安装ruby的版本是2.0.0,但是如果有些应用需要高版本的ruby环境,比 ...
- pandas之DataFrame
DataFrame 类型类似于数据库表结构的数据结构,其含有行索引和列索引,可以将DataFrame 想成是由相同索引的Series组成的Dict类型.在其底层是通过二维以及一维的数据块实现. 1,D ...