第十六周 【项目1 - 验证算法】
来源:互联网 发布:12306泄露数据库 网盘 编辑:程序博客网 时间:2024/06/06 07:28
/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目一之各种排序.cpp 作 者:李潇 完成日期:2016年12月18日 版 本 号:v1.0 问题描述:请用各种排序算法完成序列{57,40,38,11,13,34,48,75,6,19,9,7}的排序。 输入描述:无 程序输出: 几种排序前、排序后的数组。 */
代码:
#include <stdio.h> #define maxsize 12typedef int KeyType;typedef int InfoType;typedef struct{KeyType key;InfoType data;}RecType;void Bubblesort(RecType R[],int n)//冒泡排序 {int i,j;bool exchange;RecType tmp;for(i=0;i<n-1;i++){exchange=false;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-1]=tmp;exchange=true;}if(!exchange){printf("冒泡排序后的数组:\n"); for(i=0;i<n;i++) printf("%d ",R[i].key); printf("\n"); return;}}}void QuickSort(RecType R[],int s,int t) //快速排序 {int i=s,j=t;RecType tmp;if(s<t){tmp=R[s];while(i!=j){while(j>i && R[j].key>=tmp.key) j--;R[i]=R[j];while(i<j && R[i].key<=tmp.key) i++;R[j]=R[i];}R[i]=tmp; QuickSort(R,s,i-1); QuickSort(R,i+1,t);}}void SelectSort(RecType R[],int n)//直接选择排序 {int i,j,k;RecType tmp;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++) if(R[j].key<R[k].key) k=j;if(k!=i){tmp=R[i];R[i]=R[k];R[k]=tmp;}}printf("直接选择排序后的数组:\n");for(i=0;i<n;i++) printf("%d ",R[i].key);printf("\n");}int main(){RecType r[maxsize];KeyType a[]={57,40,38,11,13,34,48,75,6,19,9,7};int i;for(i=0;i<maxsize;i++) r[i].key=a[i];printf("输出排序前的数组:\n") ;for(i=0;i<maxsize;i++) printf("%d ",r[i].key);printf("\n");QuickSort(r,0,maxsize-1); printf("快速排序后的数组:\n"); for(i=0;i<maxsize;i++) printf("%d ",r[i].key); printf("\n"); Bubblesort(r,maxsize); SelectSort(r,maxsize);return 0;}
运行结果;
心得体会:
在这里需注意冒泡排序的地方,这里用的是改进版的冒泡排序,需要注意它的return; 这句话。
0 0
- (第十六周项目1)验证算法
- 第十六周 项目1 验证算法 基数排序
- 第十六周项目1--验证算法
- 【第十六周项目1 - 验证算法】
- 第十六周 项目1 验证算法 基数排序
- 第十六周项目1-算法验证
- 第十六周项目1--验证算法
- 第十六周项目1--验证算法
- 第十六周 项目1验证算法-基数排序
- 第十六周项目1-验证算法-基数排序
- 第十六周 【项目1 - 验证算法】
- 第十六周 项目1-验证算法(1)
- 第十六周项目1—验证算法(1)
- 第十六周项目1-验证算法(1)冒泡排序
- 第十六周 项目1 验证算法 直接插入排序
- 第十六周——【项目1 - 验证算法】
- 第十六周--项目1算法验证冒泡排序
- 第十六周 项目1-验证算法(2)
- Android体系与系统架构
- 腾讯云创建网站
- 基于docker-swarm搭建持续集成集群服务
- 【TZCOO】我对INFOR WMS实施的一些感想
- Android如何自学呢?
- 第十六周 【项目1 - 验证算法】
- 数据结构与算法-查找-折半查找
- WebView+EventBus粘性Post实现界面跳转
- js对象中封装方法
- SVM入门(九)松弛变量(续)
- 设计模式-行为性设计模式:策略模式 Strategy
- 技能包!Linux 下清空或删除大文件内容的 5 种方法
- c++::实现一个日期类
- RN布局(登陆界面Demo)