第十六周项目1 (1)——冒泡排序
来源:互联网 发布:苍老师高清种子源码 编辑:程序博客网 时间:2024/05/23 13:26
/*Copyright (c) 2015,烟台大学计算机学院*All right reserved*文件名称:main.cpp*作者:姜延锴*完成日期:2016年12月16日*版本号:v1.0*问题描述:已知一个关键字序列为if、while、for、case、do、break、else、struct、union、int、double、float、char、long、bool,共15个字符串,哈希函数H(key)为关键字的第一个字母在字母表中的序号,哈希表的表长为26。 (1)若处理冲突的方法采用线性探测法,请设计算法,输出每个关键字对应的H(key),输出哈希表,并求成功情况下的平均查找长度。 (2)若处理冲突的方法采用链地址法,请设计算法,输出哈希表,并计算成功情况和不成功情况下的平均查找长度。*输入描述:无*程序输出:测试数据*/
代码:
#include <stdio.h>#define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType} RecType; //排序的记录类型定义void BubbleSort(RecType R[],int n){ int i,j,k; RecType tmp; for (i=0; i<n-1; i++) { for (j=n-1; j>i; j--) //比较,找出本趟最小关键字的记录 if (R[j].key<R[j-1].key) { tmp=R[j]; //R[j]与R[j-1]进行交换,将最小关键字记录前移 R[j]=R[j-1]; R[j-1]=tmp; } printf("i=%d: ",i); for (k=0; k<n; k++) printf("%d ",R[k].key); printf("\n"); }}int main(){ int i,n=10; RecType R[MaxSize]; KeyType a[]= {9,8,7,6,5,4,3,2,1,0}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); BubbleSort(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0;}
代码:
#include <stdio.h>#define MaxSize 20typedef int KeyType; //定义关键字类型typedef char InfoType[10];typedef struct //记录类型{ KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType} RecType; //排序的记录类型定义void BubbleSort1(RecType R[],int n){ int i,j,k,exchange; RecType tmp; for (i=0; i<n-1; i++) { exchange=0; for (j=n-1; j>i; j--) //比较,找出最小关键字的记录 if (R[j].key<R[j-1].key) { tmp=R[j]; //R[j]与R[j-1]进行交换,将最小关键字记录前移 R[j]=R[j-1]; R[j-1]=tmp; exchange=1; } printf("i=%d: ",i); for (k=0; k<n; k++) printf("%d ",R[k].key); printf("\n"); if (exchange==0) //中途结束算法 return; }}int main(){ int i,n=10; RecType R[MaxSize]; KeyType a[]= {0,1,7,2,5,4,3,6,8,9}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); BubbleSort1(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0;}
0 0
- 第十六周项目1 (1)——冒泡排序
- 第十六周项目1 (1)——冒泡排序
- 第十六周项目1 (1)——冒泡排序
- 【第十六周 项目1 (1)—冒泡排序】
- 第十六周项目1—交换排序之冒泡排序
- 第十六周项目1-冒泡排序
- 第十六周 项目1-冒泡排序
- 第十六周项目6—冒泡排序
- 第十六周实践项目(1)—验证算法1冒泡排序
- 第十六周项目(1):验证算法3——冒泡排序
- 第十六周项目1(3)验证算法3—冒泡排序
- 第十六周项目1-(1)冒泡排序
- 第十六周项目1-验证算法(1)冒泡排序
- 第十六周项目1数组冒泡排序 (指针)
- 第十六周项目1(3)-冒泡排序
- 第十六周项目1-验证算法(3)冒泡排序
- 第十六周项目1-验证算法(3)冒泡排序
- 第十六周项目1验证算法--(3)冒泡排序
- 学习方法
- 老号被盗 这是我新号
- codeforce 735 C. Tennis Championship (斐波那契数列||网球比赛)
- Netty之源码下载
- 栈 实现四则运算的计算器
- 第十六周项目1 (1)——冒泡排序
- bzoj 1034 伪田忌赛马
- 使用su - root出现Authentication failure
- 遇到CUICatalog: Invalid asset name supplied: (null)
- Unity Mirror Reflection
- 关于ListView中包含EditText数据复用引起异常的解决方案
- hdu 2852
- Unity Mesh
- 使用su - root出现Authentication failure