第十六周实践项目--排序

来源:互联网 发布:扫条码的软件 编辑:程序博客网 时间:2024/05/17 01:23

问题及代码:

冒泡法:

#include<iostream>using namespace std;int main(){int a[50]={57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7};int i=0,j=12,t;while(i<12){while(j>i){if(a[j]<a[j-1]){t=a[j];a[j]=a[j-1];a[j-1]=t;}j--;}j=12;i++;}i=0;while(i<12){cout<<a[i]<<' ';i++;}return 0;}


直接选择法:

#include<iostream>using namespace std;int main(){int a[50]={57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7};int i=0,j=0,k;while(i<11){k=i;j=i+1;while(j<12){if(a[k]>a[j]){k=j;}j++;}if(i!=k){int t;t=a[i];a[i]=a[k];a[k]=t;}i++;}i=0;while(i<12){cout<<a[i]<<' ';i++;}return 0;}


插入法:

#include<iostream>using namespace std;int main(){int a[50]={57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7};int i=1,j=0;while(i<12){j=i-1;while(j>=0){if(a[j]>a[j+1]){int t;t=a[j+1];a[j+1]=a[j];a[j]=t;}j--;}i++;}i=0;while(i<12){cout<<a[i]<<' ';i++;}return 0;}

运行结果:

学习心得:
以上几种排序是比较基础的,通过自己来实现巩固这些问题,积累代码,使其变为自己的。

0 0