算法测试(课上测试)

  • 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;
}

查找结果:

posted @ 2021-12-13 11:31  20191304商苏赫  阅读(33)  评论(0编辑  收藏  举报
Live2D