已知长度为n的线性表算法A采用顺序存储结构,请写一算法,找出该线性表算法中值最小的数据元素.

【图文】第2章
线性表_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
上传于||暂无简介
大小:238.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢在长度为n的线性表中寻找最大项至少需要比较几次?急用,
陈且好咩71
为您推荐:
其他类似问题
扫描下载二维码对长度为n的线性表进行顺序查找,在最坏情况下所的比较次数为多少?给一个解题思路
最糟糕的情况应该是比较到线性表最后一个值,也没有查找到所需要的值,那么从线性表的第0个值开始比较,每次取出一个值比较,不符合,再取下一个值,依次比较,一直到最后一个,那么长度为N,就需要比较N次.
为您推荐:
其他类似问题
扫描下载二维码采用分块查找是,若线性表中有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分为________个结点最佳.求大神教这个怎么算?
每块最佳长度为:根号625= 25,即每块25个结点,一共分为25块此时平均查找长度=2((25+1)/2)= 26具体推导过程参见教科书
为您推荐:
其他类似问题
扫描下载二维码设有一个线性表采用顺序存储结构,表中的数据元素值为正整数(n个).设在O(n) 时间内,将线性表分成两为两部分,其中左半部分每个元素都小于原表的第一个元素,而右半部分则相反.
丝袜sy16FL98
不知道你是否学过快速排序算法,在算法中有划分算法,实现的就是你说的这个操作.思想是:以第一个元素为轴,开始时设置2个指针(一个在最左端【不包括第一个元素】,一个在最右端)若两个指针没有重合,从右向左扫描每个元素,若遇到比轴小的元素则记录位置并停止向左扫描,开始从左向右扫描每个元素,若遇到比轴大的元素,则记录位置并停止扫描,将两个位置的记录交换,然后再从右向左扫描,重复上述过程,直到两个指针重合.
没学过,你能给出具体的程序不
#include "数据操作.h"
void main()
printf("请输入数据表中关键字个数:\n");
//数据表中关键字个数
scanf("%d",&len);
SeqList SL;
//声明数据表类型变量
if(CreateList(&SL,len))
//创建数据表
printf("数据表创建成功,划分前关键字如下:\n");
PrintList(SL);
//输出数据表
pivot=(int)rand()%1000;
//随机生成枢纽
printf("枢纽为:%d\n",pivot);
int partionIdx=Partion(&SL,cmp,swp,1,SL.len,pivot);
printf("划分位置:%d\n",partionIdx-1);
//输出划分位置
printf("划分后关键字如下:\n");
PrintList(SL);
//输出数据表
printf("数据表无元素,数据表创建失败!\n");
#ifndef _TBOPP_H_
#define _TBOPP_H_
//数据表存储结构类型
//数据表中记录的关键字类型
typedef int KeyDT;
//数据表记录类型
typedef struct
//为简化程序,省略其余记录项
//数据表类型,采用定长顺序存储结构
typedef struct {
RecType * L
//数据表头指针
//数据表长度
//声明布尔类型
typedef enum {TRUE=1,FALSE=0} BOOL;
//函数声明
BOOL CreateList(SeqList * PL,int n);
void PrintList(SeqList SL);
Partion(SeqList * PL,int(*cmp)(KeyDT,KeyDT),void(*swp)(KeyDT *,KeyDT *),int leftptr,int rightptr,int pivot);
int cmp(KeyDT,KeyDT);
void swp(KeyDT *,KeyDT *);
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 excel找出最小值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信