2020考研数据结构 408算法2013年真题

这篇博客主要解析了2020考研中408计算机专业综合数据结构部分的2013年算法真题。博主提出了一种非最优但能在考研中获得高分的解决方案,该方案的时间复杂度为O(n^2),空间复杂度为O(n)。尽管不是最高效的算法,但博主认为其性价比极高,能确保至少获得10分的成绩。


1.

第一步,现将首元素设为标记位flag,次数出现最多的元素设为maxELem,初始flag=数组首元素,flag将标记位一个一个的与数组每个元素比较,若相等,count++,

第二步,将数组的第二个元素设为标记位,依次循环标记

第三部,若第二次的比第一次的count大,将最大的次数count设为最多位数,在循环时就比较,同时将maxElem等于循环时的元素

第四部,函数返回最多出现的次数,如果次数大于数组长度一半时,函数返回最多元素maxElem,否则返回-1


#include<stdio.h>
#define maxSize 100

typedef struct Sqlist{
	int data[maxSize];
	int length;
}Sqlist;
int find(Sqlist &L){
	int flag,count,min=0,zuiduo=0;
	int arr[L.length];
	for(int i=0;i<L.length;i++){
		count=0;
		flag=L.data[i];
		for(int j=0;j<L.length;j++){
			if(flag==L.data[j])
			count++;
		}	
		if(count>min)
		{
			min=count;
			zuiduo=L.data[i]; 
		} 
	 
	}
     if(min>(L.length/2))
		return zuiduo;
	else
		return -1;
}

int initSqlist(Sqlist &L){
	int n;
	 printf("顺序表要输入的个数:");
	 scanf("%d",&n);
	 pri
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值