《高中數(shù)學(xué) 排序問題課件 北師大必修3》由會員分享,可在線閱讀,更多相關(guān)《高中數(shù)學(xué) 排序問題課件 北師大必修3(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、排序問題排序問題 在日常生活中,人們經(jīng)常要把一些記在日常生活中,人們經(jīng)常要把一些記錄中的數(shù)據(jù)排序,如招生錄取中按照成錄中的數(shù)據(jù)排序,如招生錄取中按照成績對考生進(jìn)行排序,漢字拼音檢索中按績對考生進(jìn)行排序,漢字拼音檢索中按照字母順序?qū)h字進(jìn)行排序等等。排序照字母順序?qū)h字進(jìn)行排序等等。排序就是按照一定的規(guī)則,對數(shù)據(jù)加以排列就是按照一定的規(guī)則,對數(shù)據(jù)加以排列整理,從而提高查找效率整理,從而提高查找效率(1)直接插入排序法:)直接插入排序法:(2)冒泡排序法:)冒泡排序法: (1)直接插入排序法:)直接插入排序法: 直接插入法就是把直接插入法就是把a1作第一個數(shù),用作第一個數(shù),用a2與與a1比較,如果
2、比較,如果a2a1,則將兩個數(shù)交,則將兩個數(shù)交換位置,這時兩個數(shù)中最小換位置,這時兩個數(shù)中最小 數(shù)是數(shù)是a1; 然后從然后從a3開始,與開始,與a1, a2依次進(jìn)行比較,依次進(jìn)行比較,如果如果a3小,也將兩個數(shù)交換位置,繼續(xù)小,也將兩個數(shù)交換位置,繼續(xù)比較,比較完第二趟后,那么這三個數(shù)比較,比較完第二趟后,那么這三個數(shù)按從小到大排好按從小到大排好;,直到直到n個數(shù)排完為止。個數(shù)排完為止。例如,給定例如,給定5個數(shù)個數(shù)5,4,3,8,7;第一次第一次5與與4比,結(jié)果是比,結(jié)果是4,5;第二次第二次3與與4比,結(jié)果是比,結(jié)果是3,5,4; 4與與5比,結(jié)果是比,結(jié)果是3,4,5;最后的結(jié)果是最后的
3、結(jié)果是3,4,5,7,8.開始開始輸入輸入n,a(1),a(n)結(jié)束結(jié)束i=2i=n輸出輸出a(1),a(n)i=i+112是是否否ja(i)a(j)=ma(i)=a(j)m=a(i); 是是否否是是否否n=input(“n=”);a=zeros(1,n); for i=1:1:n a(i)=input(“a(i)=”);end for i=2:1: n for j=1:1: i1 if a(j)a(i), m=a(i); a(i)=a(j);a(j)=m; end end end for k=1:1: n print(%io(2), a(k)end (2)冒泡排序法:)冒泡排序法: 冒泡排序
4、法是形象的表示,水泡輕的向冒泡排序法是形象的表示,水泡輕的向上冒,重的石頭向下沉。上冒,重的石頭向下沉。 在每一趟排序中,從在每一趟排序中,從(a1,a2)開始,每相開始,每相鄰的兩個數(shù)都進(jìn)行依次比較大小,把小的鄰的兩個數(shù)都進(jìn)行依次比較大小,把小的數(shù)放在前面,大的數(shù)放在后面,數(shù)放在前面,大的數(shù)放在后面, 這樣把這樣把(a1,a2), (a2,a3), (an1,an)一趟比較結(jié)束時,一趟比較結(jié)束時,an一定是最大的。一定是最大的。 這樣繼續(xù)比較第二趟,這時這樣繼續(xù)比較第二趟,這時an1一定一定是第二大的;是第二大的; 當(dāng)進(jìn)行了當(dāng)進(jìn)行了n1趟后,所有的數(shù)的大小趟后,所有的數(shù)的大小順序就排好了。順
5、序就排好了。例如例如5個數(shù):個數(shù):7,8,3,5,4;第一趟后:第一趟后:7,3,5,4,8;第二趟后:第二趟后:3,5,4,7,8;第三趟后:第三趟后:3,4,5,7,8;開始開始輸入輸入n,a(1),a(n)結(jié)束結(jié)束w=1w=n1輸出輸出a(1),a(n)w=w+112是是否否ia(i+1)a(i)=ma(i+1)=mm=a(i); 是是否否是是否否n=input(“n=”);a=zeros(1, n); for i=1:1: n, a(i)=input(“a(i)=”);end w=1while wa(i+1) ,m=a(i);a(i)=a(i+1);a(i+1)=m;end end w=w+1;endfor k=1:1: n print(%io(2), a(k)end