查找和排序
文章平均质量分 51
_Crazy€
你来时冬至,但眉上风止,开口是‘我来的稍稍迟’。大抵知心有亭树,亭亭一如你风致。
展开
-
归并求逆序数(C语言)
#include <stdio.h>int n;int a[101000];int t[101000];long long ans;void Merge(int s1,int e1,int s2,int e2){ int k=s1; int p1 = s1; int p2 = s2; while (p1<=e1&&p...原创 2019-12-06 13:29:27 · 1082 阅读 · 0 评论 -
数据结构实验之排序六:希尔排序
数据结构实验之排序六:希尔排序Problem Description我们已经学习了各种排序方法,知道在不同的情况下要选择不同的排序算法,以期达到最好的排序效率;对于待排序数据来说,若数据基本有序且记录较少时, 直接插入排序的效率是非常好的,希尔排序就是针对一组基本有序的少量数据记录进行排序的高效算法。你的任务是对于给定的数据进行希尔排序,其中增量dk=n/(2^k)(k=1,2,3……)In...原创 2019-12-01 22:05:22 · 983 阅读 · 0 评论 -
数据结构实验之排序四:寻找大富翁(堆排序)
数据结构实验之排序四:寻找大富翁Problem Description2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。Input首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),其中N为总人数,M为需要找出的大富翁数目,接下来给出N个人的个人资产,以万元为单位,个人资产数字为正整数,...原创 2019-12-01 21:15:24 · 464 阅读 · 0 评论 -
数据结构实验之排序二:交换排序
数据结构实验之排序二:交换排序Problem Description冒泡排序和快速排序都是基于"交换"进行的排序方法,你的任务是对题目给定的N个(长整型范围内的)整数从小到大排序,输出用冒泡和快排对这N个数排序分别需要进行的数据交换次数。Input连续多组输入数据,每组数据第一行给出正整数N(N ≤ 10^5),随后给出N个整数,数字间以空格分隔。Output输出数据占一行,代表冒泡排...原创 2019-11-23 20:49:22 · 385 阅读 · 0 评论 -
快速排序(C语言)
int a[200000];void qsort(int l,int r){ int x=a[l]; int i=l; int j=r; if(l>=r) return ; while(i<j) { while(i<j&&a[j]>=x)j--; a[i]=...原创 2019-11-23 20:12:18 · 406 阅读 · 0 评论 -
哈希表(C语言)
数据结构实验之查找七:线性之哈希表Problem Description根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。Input连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1500)和p(p >= N的最小素数),N是关键字...原创 2019-11-23 16:48:19 · 817 阅读 · 1 评论 -
二分查找
1、循环实现二分查找int erfenSearch(int a[],int k,int n){ int left=0; int right=n-1; int mid; while(left<=right) { mid=(left+right)/2; if(k<a[mid]) right=mid-1; ...原创 2019-07-31 14:15:19 · 331 阅读 · 0 评论 -
快排函数qsort(C语言)
头文件<stdio.h>函数原型:void qsort( void *base, //需要排序的数组的首地址(即数组名) size_t nmemb, //数组中元素的个数 size_t size, //数组中每个元素的大小 int (*cmp) (const void *, const void *) //指向比较函数的函数指针,决定...原创 2019-04-09 20:47:42 · 378 阅读 · 1 评论