• 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
  • 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
首页 » 生活常识 » 算法表示的4种方法(算法的四种描述方法是什么)

算法表示的4种方法(算法的四种描述方法是什么)

分类:生活常识 日期:2022-06-23 19:00 浏览:8 次

1.算法的四种描述方法是什么

#include#include#include#include void BubbleSort(int *L,int N) { //冒泡 int i,j; int t; for(i=1;ii;j--) if(L[j]<L[j-1]) { t=L[j]; L[j]=L[j-1]; L[j-1]=t; } } } int SelectMinKey(int *L,int N,int n) { int i,min=n; for(i=n+1;i<=N;i++) if(L[i]<L[min]) min=i; return min; } void SelectSort(int *L,int N) { //选择 int i,j; int t; for(i=1;i<N;i++) { j=SelectMinKey(L,N,i); if(i!=j) { t=L[i]; L[i]=L[j]; L[j]=t; } } } void InsertSort(int *L,int N) { //插入 int i,j; for(i=2;i<=N;i++) { if(L[i]<L[i-1]) { L[0]=L[i]; L[i]=L[i-1]; for(j=i-2;L[0]<L[j];j--) L[j+1]=L[j]; L[j+1]=L[0]; } } } void ShellInsert(int *L,int N, int dk) { // 对顺序表L作一趟希尔插入排序。

本算法对算法10.1作了以下修改: // 1. 前后记录位置的增量是dk,而不是1; // 2. r[0]只是暂存单元,不是哨兵。当j<=0时,插入位置已找到。

int i,j; for(i=dk+1;i<=N;++i) if(L[i]0&&L[0]<L[j]);j-=dk) L[j+dk]=L[j]; // 记录后移,查找插入位置 L[j+dk]=L[0]; // 插入 } } // ShellInsert void ShellSt(int *L,int N, int dlta[], int t) { // 算法10.5 // 按增量序列dlta[0..t-1]对顺序表L作希尔排序。 for(int k=0;k<t;++k) ShellInsert(L,N, dlta[k]); // 一趟增量为dlta[k]的插入排序 } // ShellSort void ShellSort(int *L,int N) { //希尔 int t=(int)log(N); int k,*dlta; dlta=(int*)malloc(t*4); //产生增量序列 for(k=0;k<t;k++) dlta[k]=(int)pow(2,t-k)-1; ShellSt(L,N,dlta,t); } int main() { int N=250; int i,j,k; int t; int ti[16]; int *L; srand(time(NULL)); printf("长度\t|冒泡\t|选择\t|插入\t|希尔\n"); printf("--------+-------------------------------------------------------------"); for(j=0;N<100000;j++) { L=(int *)malloc((N+1)*4); t=0; for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); BubbleSort(L,N); ti[t++]=clock(); for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); SelectSort(L,N); ti[t++]=clock(); for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); InsertSort(L,N); ti[t++]=clock(); for(i=1;i<=N;i++) L[i]=rand(); ti[t++]=clock(); ShellSort(L,N); ti[t++]=clock(); printf("\n%d\t",N); for(k=0;k<4;k++) printf("| %d\t",(ti[2*k+1]-ti[2*k])); N*=5; } printf("\n\n"); }//这是我们当年学数据结构时我自己写的,给你改了一下,输出是对随机产生一些数,对四种算法进行比较,有问题可以hi我啊 另外,站长团上有产品团购,便宜有保证。

2.4、说明什么是算法,算法的描述方法,各种方法的特点是什么

第一问、答:为解决某一问题而设计的确定的有限的步骤就称为算法

第二问、答:自然语言、流程图、伪代码或程序设计语言

第三问、答:

自然语言

用自然语言表示算法,人比较容易理解,但书写较烦琐,具有不确切性,容易引起歧义,造成误解;

对较复杂的问题,用自然语言难以表达准确;

计算机不能识别和执行。

流程图

用图形符号表示算法必须要有一组统一规定、含义确定的专用符号;

用流程图表示算法就较直观、形象;

计算机不能识别和执行。

伪代码或程序设计语言

只有用计算机能理解和执行的程序设计语言把算法表示出来,输入计算机执行,计算机才能按照预定的算法去解决问题;

不同类型的计算机能够识别的指令和语言不尽相同,即使对同一种计算机语言,不同类型的计算机对该语言的翻译程序也有差异。

算法表示的4种方法有哪些

相关推荐:
  • 《神偷奶爸》三个小黄人分别叫什么名字啊
  • 党龄从什么时候开始算(党章中党龄从什么时候开始算)
  • 西瓜皮怎么才能做成西瓜软糖(餐厨垃圾西瓜皮)
  • 冰箱发霉的东西用什么洗才能干净(冰箱胶条发霉怎么洗)
  • 在做桃酥时没有猪油怎么办(怎样做桃酥)
上一篇:社区开展包粽子宣传安全知识(社区安全教育宣传内容) 下一篇:小学类本科考什么科目(本科小学教育要考哪些科目)

相关推荐

《神偷奶爸》三个小黄人分别叫什么名字啊
党龄从什么时候开始算(党章中党龄从什么时候开始算)
西瓜皮怎么才能做成西瓜软糖(餐厨垃圾西瓜皮)
冰箱发霉的东西用什么洗才能干净(冰箱胶条发霉怎么洗)
在做桃酥时没有猪油怎么办(怎样做桃酥)
怎样选择成熟的.味道好的雪莲果品种(怎样选择成熟的.味道好的雪莲果品种有哪些)
如何炒牛肉丝嫩又好吃
亚马孙和亚马逊是一个地方吗(亚马孙还是亚马逊?)
角阀锈死拧不下来妙招?(角阀锈死拧不下来妙招图解)
香港西贡属于农村吗?(香港西贡属于农村吗知乎)
潮流时尚 写作素材 创新创业
生活常识 策划方案 安全知识
自考专业 家居生活 三农创业
励志故事 时尚穿搭 星座知识
热门分类

声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
 蜀ICP备2020033479号-4  Copyright © 2016  学习鸟. 页面生成时间:2.877秒

返回顶部