《冒泡法和选择法.ppt》由会员分享,可在线阅读,更多相关《冒泡法和选择法.ppt(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、冒泡法和选择法 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望排序过程:排序过程:(1 1)比较第一个数与第二个数,若为)比较第一个数与第二个数,若为逆序,逆序,a1a2a1a2,则则交换交换;然后比较第二个数与第三个数;依次类推,直至;然后比较第二个数与第三个数;依次类推,直至第第n-1n-1个数和第个数和第n n个数比较为止个数比较为止第一趟冒泡排序第一趟冒泡排序,结果,结果最大最大的数被安置在最后一个元素位置上的数被安置在最后一个元素位置上(2 2)对前)对
2、前n-1n-1个数进行第二趟冒泡排序,结果使个数进行第二趟冒泡排序,结果使次大次大的数的数被安置在第被安置在第n-1n-1个元素位置个元素位置(3 3)重复上述过程,共经过)重复上述过程,共经过n-1n-1趟趟冒泡排序后,排序结束冒泡排序后,排序结束输入输入n 个数给个数给a1 到到 anfor j=1 to n-1for i=1 to n-jaiai+1真真假假aiai+1输出输出a1 到到 an文件包含文件包含变量定义变量定义主函数主函数输入数据输入数据排序排序输出数据输出数据#include int a10,i,j,t;printf(Input 10 numbers:n);for(i=0
3、;i10;i+)scanf(%d,&ai);for()for()if()printf(n);printf(The sorted numbers:n);for(i=0;i10;i+)printf(%d,ai);main()j=0;j9;j+i=0;iai+1例例 用用简单选择法简单选择法对对1010个数排序个数排序排序过程:排序过程:(1 1)首先通过)首先通过n-1n-1次比较,从次比较,从n n个数中找出个数中找出最小最小的,的,将它将它与第一个数交换与第一个数交换第一趟选择排序第一趟选择排序,结果最小的数被安置,结果最小的数被安置在在第一个元素位置第一个元素位置上上(2 2)再通过)再通过
4、n-2n-2次比较,从剩余的次比较,从剩余的n-1n-1个数中找出关键字个数中找出关键字次小次小的记录,将它与的记录,将它与第二个数交换第二个数交换第二趟选择排序第二趟选择排序(3 3)重复上述过程,共经过)重复上述过程,共经过n-1n-1趟趟排序后,排序结束排序后,排序结束例例初始:初始:49 38 65 97 76 13 27 ji=11349一趟:一趟:13 38 65 97 76 49 27 i=22738二趟:二趟:13 27 65 97 76 49 38 三趟:三趟:13 27 38 97 76 49 65 四趟:四趟:13 27 38 49 76 97 65 五趟:五趟:13 2
5、7 38 49 65 97 76 六趟:六趟:13 27 38 49 65 76 97 kkkkjjjjjjjjjj一共比较一共比较n-1趟趟k输入输入n 个数给个数给a1 到到 anfor i=1 to n-1for j=i+1 to najak假假真真k=j输出输出a1 到到 ank=ii!=kaiak真真假假文件包含文件包含变量定义变量定义输入数据输入数据输出数据输出数据#include int a10,i,j,k,t;printf(Input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);printf(n);printf(The sorted numbers:n);for(i=0;i10;i+)printf(%d,ai);main()主函数主函数i=0;i9;i+t=ai;ai=ak;ak=t;for()k=i;for()j=i+1;j10;j+if()ajakk=j;if(i!=k)