蓝桥杯国赛——第六战(算法)

注:

最近阅读了基本简单的算法书籍,但是没有上手使用过。综合考虑算法的性能和比赛的使用情景,简单复现几个。

详细可以参考:《算法图解-巴尔加瓦》、《大话数据结构》;

排序方法:

 排序方法各有优劣,这里我就随便选择一种记录来常用。以后如果需要更高效率再修正。

直接来个插入排序,代码简单,原理易懂

1.3 插入排序 | 菜鸟教程 (runoob.com)

【上面的链接含动图说明和各种语言编写的例程】

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

void insertion_sort(int arr[], int len){
        int i,j,key;
        for (i=1;i<len;i++){
                key = arr[i];
                j=i-1;
                while((j>=0) && (arr[j]>key)) {
                        arr[j+1] = arr[j];
                        j--;
                }
                arr[j+1] = key;
        }
}

软件滤波:

使用算数平均滤波即可,比赛中实际需要的不多。

(6条消息) 10种软件滤波方法_cugwyman的博客-CSDN博客_软件滤波器

#define N 12

char filter()
{
   int  sum = 0;
   for ( count=0;count<N;count++)
   {
      sum + = get_ad();
      delay();
   }
   return (char)(sum/N);
}

 

posted @ 2022-06-09 15:15  charonplus  阅读(75)  评论(0)    收藏  举报