为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

小学劳动实践一年级折笔帽

2021-10-19 14页 ppt 1MB 106阅读

用户头像 个人认证

至善策划

暂无简介

举报
小学劳动实践一年级折笔帽#include #include #include ////实现简单选择排序、直接插入排序和冒泡排序 void SelectSort() { int m,t; int a[]={8,2,4,3,6},n=5; for(int i=0;ia[j]) { min=a[j]; m=j; } } if(a[i]!=min) { t=a[i]; a[i]=a[m]; a[m]=t; } } //打印 for(i...
小学劳动实践一年级折笔帽
#include #include #include ////实现简单选择排序、直接插入排序和冒泡排序 void SelectSort() { int m,t; int a[]={8,2,4,3,6},n=5; for(int i=0;ia[j]) { min=a[j]; m=j; } } if(a[i]!=min) { t=a[i]; a[i]=a[m]; a[m]=t; } } //打印 for(i=0;ia[i]&&xi;j--) a[j+1]=a[j]; a[i+1]=tem; for(i=0;ia[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } for(i=0;i0) { for(i=Gap;i=0) if(a[j]>a[j+Gap]) { temp=a[j]; a[j]=a[j+Gap]; a[j+Gap]=temp; j=j-Gap; } else break; } Gap/=2; } for(i=0;ipivot) hi--; else { t=n[lo+1]; n[++lo]=n[hi-1]; n[--hi]=t; } } n[left]=n[lo]; n[lo]=pivot; return lo; } //////堆排序的简单数组实现 void HeapAdjust(int array[], int i, int nLength) { int nChild, nTemp; for (nTemp = array[i]; 2 * i + 1 < nLength; i = nChild) { // 子结点的位置是 父结点位置 * 2 + 1 nChild = 2 * i + 1; // 得到子结点中较大的结点 if (nChild != nLength - 1 && array[nChild + 1]>array[nChild]) ++nChild; // 如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点 if (nTemp= 0; --i) { HeapAdjust(array, i, length); } // 从最后一个元素开始对序列进行调整,不断的缩小调整的范围直到第一个元素 for (i=length - 1; i > 0; --i) { // 把第一个元素和当前的最后一个元素交换, // 保证当前的最后一个位置的元素都是在现在的这个序列之中最大的 Swap(&array[0], &array[i]); // 不断缩小调整heap的范围,每一次调整完毕保证第一个元素是当前序列的最大值 HeapAdjust(array, 0, i); } } ////输出数组 void print(int b[]) { for(int i=0;i
的操作排序 //创建一个单链表,初始化数据 typedef struct londe { int data; struct londe *next; }londe,*linklist; void createlist(linklist &L) { linklist p=(linklist)malloc(sizeof(londe)); p->data=NULL; p->next=NULL; L=p; } void insertlist(linklist &L) { linklist p; int as; p=L; printf("请输入链表的的元素,输入以#为结束\n"); while(scanf("%d",&as)&&as!='#') { linklist q=(linklist)malloc(sizeof(londe)); q->data=as; q->next=NULL; p->next=q; p=q; } printf("链表创建成功!!\n"); } /////////链表创建生成完成 void printlist(linklist &L) { linklist p; p=L->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); } /////链表的排序操作 int rtnlegth(linklist &L) //计算双向链表的长度 { linklist p; int count=0; p=L->next; while(p) { count++; p=p->next; } return(count); } void listSelectSort(linklist &L) //链表的选择排序 { linklist p,q,small; int temp; for(p=L->next;p->next!=NULL;p=p->next) { small=p; for(q=p->next;q;q=q->next) if(q->datadata) small=q; if(small!=p) { temp=p->data; p->data=small->data; small->data=temp; } } printf("选择排序结果如下:\n"); printlist(L); printf("\n"); } void insertlistsort(linklist &L) //链表的插入排序 { linklist p; int xx; p=L->next; printf("请输入要插入的数据\n"); scanf("%d",&xx); linklist pp=(linklist)malloc(sizeof(londe)); pp->data=xx; if(p->data>=xx) { pp->next=p; L=p; return; } while(p->next) { if(xx>=p->data&&p->next->data>=xx) pp->next=p->next->next; p->next=pp; return; } printf("插入排序结果如下:\n"); printlist(L); printf("\n"); } void maopao(linklist &L) //链表的冒泡排序 { linklist p; int tem; for(int i=1;inext; for(int j=0;jdata>=p->next->data) { tem=p->data; p->data=p->next->data; p->next->data=tem; } p=p->next; } } printf("冒泡排序结果如下:\n"); printlist(L); printf("\n"); } int main() { int mm,nn; int b[]={8,2,4,3,6}; linklist L; printf("请选择菜单:******************************\n"); printf("1:实现简单选择排序、直接插入排序和冒泡排序\n"); printf("2:实现希尔排序算法************************\n"); printf("3:实现快速排序算法************************\n"); printf("4:实现堆排序算法**************************\n"); printf("采用链式存储实现简单选择排序、直接插入排序和冒泡排序\n"); printf("5:创建一个链表输出并:**********************\n"); printf("6:链表选择排序:****************************\n"); printf("7:链表插入排序:****************************\n"); printf("8:链表冒泡排序:*****************************\n"); printf("\n"); while(scanf("%d",&mm)!=EOF) { switch(mm) { case 1: { printf("1:选择排序\n"); printf("2:插入排序\n"); printf("3:冒泡排序\n"); while(scanf("%d",&nn)!=EOF) { switch(nn) { case 1: SelectSort(); break; case 2: inserssort(); break; case 3: maopao(); break; } break; } printf("\n"); break; } case 2: shellsort(); printf("\n"); break; case 3: quicksort(b,0,4); printf("快速排序为\n"); print(b); break; case 4: printf("堆排序为\n"); HeapAdjust(b,1,5); print(b); break; case 5: createlist(L); insertlist(L); break; case 6: listSelectSort(L); break; case 7: insertlistsort(L); break; case 8: maopao(L); break; } printf("\n"); printf("1:实现简单选择排序、直接插入排序和冒泡排序\n"); printf("2:实现希尔排序算法************************\n"); printf("3:实现快速排序算法************************\n"); printf("4:实现堆排序算法**************************\n"); printf("采用链式存储实现简单选择排序、直接插入排序和冒泡排序\n"); printf("5:创建一个链表输出并:**********************\n"); printf("6:链表选择排序:****************************\n"); printf("7:链表插入排序:****************************\n"); printf("8:链表冒泡排序:*****************************\n"); printf("\n"); } return 0; }
/
本文档为【小学劳动实践一年级折笔帽】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索