《C语言程序设计排序法比较.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计排序法比较.pptx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、会计学1C语言程序设计排序语言程序设计排序(pi x)法比较法比较第一页,共8页。第1轮比较4次:第1次 21 13 90 32 -1 进行(jnxng)交换第2次 13 21 90 32 -1 不进行(jnxng)交换第3次 13 21 90 32 -1 进行(jnxng)交换第4次 13 21 32 90 -1 进行交换第1轮比较结果:13 21 32 -1 90 最大的数已排好最大的数已排好应用举例(排序:冒泡应用举例(排序:冒泡法)法)n n用冒泡法对n个数从小到大排序。n n假定有5个无序的数 21,13,90,32,-1第1页/共8页第二页,共8页。第2轮比较(bjio)3次:第1
2、次 13 21 32 -1 90 不进行交换第2次 13 21 32 -1 90 不进行(jnxng)交换第3次 13 21 32 -1 90 进行(jnxng)交换第2轮比较结果:13 21 -1 32 90第3轮比较2次:第1次 13 21 -1 32 90 不进行交换第2次 13 21 -1 32 90 进行交换第3轮比较结果:13 -1 21 32 90第4轮比较1次:第1次 13 -1 21 32 90 进行交换第4轮比较结果:-1 13 21 32 90应用举例(排序:冒泡法)续应用举例(排序:冒泡法)续第2页/共8页第三页,共8页。第第i轮比轮比较较(bjio)第第j次次比较比较
3、(bjio)应用举例应用举例(j l)(排序:冒泡法)(排序:冒泡法)续续n nfor(i=1;i=n-1;i+)n n for(j=0;jaj+1)n n med=aj;n n aj=aj+1;n n aj+1=med;第3页/共8页第四页,共8页。第1轮比较(bjio)4次:第1次p=0 21 13 90 32 -1 p=1第2次 21 13 90 32 -1 p=1第3次 21 13 90 32 -1 p=1第4次 21 13 90 32 -1 p=4第1轮比较(bjio)交换21和-1:-1 13 90 32 21 最小的数已排好最小的数已排好应用举例应用举例(j l)(排序:选择法)
4、(排序:选择法)n n用选择法对n个数从小到大排序。n n假定有5个无序的数 21,13,90,32,-1第4页/共8页第五页,共8页。第2轮比较(bjio)3次:第1次p=1 -1 13 90 32 21 p=1第2次p=1 -1 13 90 32 21 p=1第3次p=1 -1 13 90 32 21第2轮比较不用(byng)交换:-1 13 90 32 21第3轮比较(bjio)2次:第1次p=2 -1 13 90 32 21 p=3第2次p=3 -1 13 90 32 21 p=4第3轮比较交换90与21:-1 13 21 32 90第4轮比较1次:第1次p=3 -1 13 21 32
5、 90 p=3第4轮比较不用交换:-1 13 21 32 90应用举例(排序:选择应用举例(排序:选择法)续法)续第5页/共8页第六页,共8页。应用举例(排序应用举例(排序(pi x):选择:选择法)续法)续n nfor(i=0;in-1;i+)n n p=i;n n for(j=i+1;jn;j+)n n if(ajap)p=j;n n med=ap;n n ap=ai;n n ai=med;n n 第6页/共8页第七页,共8页。n n冒泡法:n n两个相邻的数依次进行(jnxng)比较;n n比较完立刻进行(jnxng)交换,最多交换n(n-1)/2次n n选择法:n n用当前比较过的数中最小的数依次(yc)与后面的数进行比较;n n一轮比较完进行一次交换,最多交换n-1次第7页/共8页第八页,共8页。