专项代码1 常见大题代码合辑知识点梳理高考信息技术二轮复习知识点梳理_第1页
专项代码1 常见大题代码合辑知识点梳理高考信息技术二轮复习知识点梳理_第2页
专项代码1 常见大题代码合辑知识点梳理高考信息技术二轮复习知识点梳理_第3页
专项代码1 常见大题代码合辑知识点梳理高考信息技术二轮复习知识点梳理_第4页
专项代码1 常见大题代码合辑知识点梳理高考信息技术二轮复习知识点梳理_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专项代码1常见大题代码合辑插入排序(通过链表实现)原理:第一步:先创建一个只有一个元素的链表。第二步:依次生成节点,再将节点放置到链表中指定位置。第三步:输出链表节点。importrandom#插入排序(链表实现)[678,668,267,440,795]ls=[]#链表ls[0]是值,ls[1]是指针v=[random.randint(1,1000)foriinrange(5)]#待排序的数ls.append([v.pop(0),-1])#将第一个节点放入head=0p=q=0whilelen(v)!=0:p=q=headwhilep!=-1andls[p][0]>v[0]:q=pp=ls[p][1]ifp!=head:#不放在链表头上ls.append([v.pop(0),ls[q][1]])ls[q][1]=len(ls)-1else:#放在链表头上ls.append([v.pop(0),head])head=len(ls)-1p=headwhilep!=-1:print(ls[p][0])p=ls[p][1]循环队列(通过链表实现)原理:入队:将节点添加到链表尾部(因为队列从尾部进入)出队:删除当前头节点(因为队列出队是从头部出队)importrandom#循环队列功能(链表实现)ls=[]#链表ls[0]是值,ls[1]是指针head=0p=q=0foriinrange(1,6):#生成5个值的队列ls.append([i-1,i])ls[len(ls)-1][1]=0#将队列最后一个指向第一个#出队(出队完成后还是一个圈)p=headwhilels[p][1]!=head:#找到最后一个节点p=ls[p][1]head=ls[head][1]ls[p][1]=head#入队p=headwhilels[p][1]!=head:p=ls[p][1]ls.append([7,ls[p][1]])ls[p][1]=len(ls)-1数组插入(通过二分实现)将ls数组中的值,插入到ls2中指定位置,插入结束了ls2中的值依然有序原理:第一步:将原始值直接排序第二步:通过对分查找法查找到对应的值插入的位置第三步:插入值importrandomls=[random.randint(1,100)foriinrange(5)]ls2=[random.randint(1,100)foriinrange(10)]ls.sort()ls2.sort()forkinls:i,j,m=0,len(ls2)-1,0whilei<=j:m=(i+j)//2ifk<ls2[m]:j=m-1else:i=m+1ls2.insert(i,k)#插入到数组中指定位置。第一个参数是位置第二个参数是值print(ls2)插入排序(for循环版本)importrandomn=5a=[random.randint(1,100)foriinrange(n)]#生成随机数foriinrange(n):key=a[i]forjinrange(i-1,-2,-1):ifkey>=a[j]:breakelse:a[j+1]=a[j]a[j+1]=keyprint(a)[16,65,2,33,11]计数排序(通过双重循环实现)importrandomn=5a=[random.randint(1,100)foriinrange(n)]#生成随机数[82,43,60,27,30]ls=[0]*nforiinrange(n):forjinrange(n):ifa[i]<a[j]:ls[i]+=1print(a)so=[]k=0whilelen(so)!=len(a):ifls[k]==max(ls):so.append(a[k])ls[k]=-1k=(k+1)%len(a)print(so)#排序后的结果foriinrange(len(ls)):ifls[i]==len(ls)-1:print("最小值是",a[i])ifls[i]==0:print("最大值是",a[i])快速排序(递归版本)defpartition(arr,low,high):i=(low-1)pivot=arr[high]forjinrange(low,high):ifarr[j]<=pivot:i=i+1arr[i],arr[j]=arr[j],arr[i]arr[i+1],arr[high]=arr[high],arr[i+1]returni+1defquickSort(arr,low,high):iflow<high:pi=partition(arr,low,high)quickSort(arr,low,pi-1)quickSo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论