选择排序法与冒泡排序法——C语言.pptx
会计学1选择排序法与冒泡排序法选择排序法与冒泡排序法C语言语言1、选择排序法2、冒泡排序法3、改进的冒泡排序法第1页/共6页例、从键盘上输入例、从键盘上输入1010个学生的成绩,从大到小输出成绩。个学生的成绩,从大到小输出成绩。1 1、选择排序法、选择排序法#include#includevoid main(void)/*void main(void)/*选择排序法选择排序法*/*/*从键盘上输入从键盘上输入1010个学生的成绩,用选择排序法输出成绩个学生的成绩,用选择排序法输出成绩*/int d9;int d9;int z,t,i,j;int z,t,i,j;z=1;z=1;while(z)while(z)printf(printf(输入输入1010个学生的成绩以逗号隔开:个学生的成绩以逗号隔开:n);n);scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&dscanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9);8,&d9);for(i=0;i9;i+)for(i=0;i9;i+)for(j=i+1;j=9;j+)for(j=i+1;j=9;j+)if(didj)if(didj)t=di;t=di;di=dj;di=dj;dj=t;dj=t;printf(printf(学生成绩由大到小:学生成绩由大到小:n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);printf(nprintf(n输入输入1 1继续此程序,输入继续此程序,输入0 0结束此程序结束此程序););scanf(%d,&z);scanf(%d,&z);第2页/共6页2 2、冒泡排序法、冒泡排序法#include#includevoid main(void)/*void main(void)/*冒泡排序法冒泡排序法*/*/*从键盘上输入从键盘上输入1010个学生的成绩,用冒泡排序法输出成绩个学生的成绩,用冒泡排序法输出成绩*/int d9;int d9;int z,t,i,j;int z,t,i,j;z=1;z=1;while(z)while(z)printf(printf(输入输入1010个学生的成绩以逗号隔开:个学生的成绩以逗号隔开:n);n);scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9);scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9);for(i=1;i10;i+)for(i=1;i10;i+)for(j=0;j=9-i;j+)for(j=0;j=9-i;j+)if(djdj+1)if(djdj+1)t=dj;t=dj;dj=dj+1;dj=dj+1;dj+1=t;dj+1=t;printf(printf(学生成绩由大到小:学生成绩由大到小:n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);printf(nprintf(n输入输入1 1继续此程序,输入继续此程序,输入0 0结束此程序结束此程序););scanf(%d,&z);scanf(%d,&z);第3页/共6页3 3、改进的冒泡排序法、改进的冒泡排序法#include#includevoid main(void)/*void main(void)/*冒泡排序法改进冒泡排序法改进*/*/*从键盘上输入从键盘上输入1010个学生的成绩,用冒泡排序法改进法输出成绩个学生的成绩,用冒泡排序法改进法输出成绩*/int d9;int d9;int z,t,i,j,q;/*qint z,t,i,j,q;/*q为判断变量为判断变量*/z=1;z=1;while(z)while(z)printf(printf(输入输入1010个学生的成绩以逗号隔开:个学生的成绩以逗号隔开:n);n);scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9);scanf(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,&d0,&d1,&d2,&d3,&d4,&d5,&d6,&d7,&d8,&d9);q=0;q=0;for(i=1;i10&q=0;i+)for(i=1;i10&q=0;i+)q=1;q=1;for(j=0;j=9-i;j+)for(j=0;j=9-i;j+)if(djdj+1)if(djdj+1)q=0;q=0;t=dj;t=dj;dj=dj+1;dj=dj+1;dj+1=t;dj+1=t;printf(printf(学生成绩由大到小:学生成绩由大到小:n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);n%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9);printf(nprintf(n输入输入1 1继续此程序,输入继续此程序,输入0 0结束此程序结束此程序););scanf(%d,&z);scanf(%d,&z);q q为判断变量,当某趟所有相邻的不需要交换是,则可以提前结束,改进后效率更高。为判断变量,当某趟所有相邻的不需要交换是,则可以提前结束,改进后效率更高。第4页/共6页第5页/共6页