算法测试(课上测试)
- Ubuntu下支持哪些C语言的排序算法,查找算法?你是怎么得到的?提交截图
- 针对下面的数组,调用Linux的 快速排序或二分查找算法。查找算法查自己的学号。
用随机数函数产生10个 1-1000之间的数存到一个数组int arr[11]中, arr[10] = 你学号的后三位。
排序算法:
man -k sort | grep 3
qsort 快速排序
see also:
C语言alphasort()函数:依字母顺序排序目录结构
查找算法:
man -k search | grep 3
C语言
bsearch()函数可以根据你给的条件实现二分查找
lfind()、lsearch()函数:用于在给定的区域内从头到尾进行线性搜索
hsearch()函数在哈希表中搜索与该项目具有相同键
随机数生成代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[11];
int i=0;
for (i=0;i<11;i++){
arr[i]=0;
}
for (i=0;i<9;i++){
arr[i]=rand() %1000 +1;
printf("%d ",arr[i]);
}
arr[10]=304;
printf("%d ",arr[10]);
arr[11]=rand() %1000 +1;
printf("%d ",arr[11]);
return 0;
}
截图:
二分查找算法:
binarySearch(int arr[], int n, int key){
int low = 0;
int high = n - 1;
while(low<= high){
int mid = (low + high)/2;
int midVal = arr[mid];
if(midVal<key)
low = mid + 1;
else if(midVal>key)
high = mid - 1;
else
return mid;
}
return -1;
}
查找结果: