久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)(合集五篇)

時(shí)間:2019-05-13 17:21:47下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)》。

第一篇:排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)

程序在VC6.0下運(yùn)行測(cè)試通過,包含三個(gè)文件:sort_all.h排序類的定義; sort_real.cpp排序類成員函數(shù)定義;sort_main.h運(yùn)行的主函數(shù)。

包括冒泡排序、并歸排序、插入排序、選擇排序、快速排序、堆排序、Shell排序 ——————sort_all.h文件—————————————————— #include using namespace std;/****************************************/ class sort_all { public: void swap_i(int &a, int &b;void disp_array(int *array, int len;void disp_num(;void sort_maopao(int *array, int len;void sort_quick(int *array, int start, int end;void sort_merge(int * array, int start, int end;void sort_heap(int *array, int len;void sort_select(int *array, int len;void sort_insert(int *array, int len;void sort_shell(int *array, int len;};——————————————————————————————————————

————————sort_real.cpp文件——————————————————————

#include “sort_all.h”

void sort_all::disp_array(int *array, int len { for(int i=0;i { cout << array[i] << “ ”;} cout << endl;} void sort_all::swap_i(int &a, int &b { int temp;temp = a;a = b;b = temp;} void sort_all::disp_num({ cout << “---冒泡排序,輸入1---” << “n”;cout << “---并歸排序,輸入2---” << “n”;cout << “---插入排序,輸入3---” << “n”;cout << “---選擇排序,輸入4---” << “n”;cout << “---快速排序,輸入5---” << “n”;cout << “----堆排序,輸入6----” << “n”;cout << “--Shell排序,輸入7---” << “n”;cout << “-----結(jié)束,輸入0-----” << “n”;

} /**************************************************/ /**************堆排序 ******************************/ /**************************************************/ void heap_adj(int *array, int i, int len { int nTemp;int nChild;for(nTemp = array[i];2*i+1 { nChild = 2*i+1;if(nChild nChild ++;if(nChild < len-1 && array[nChild]>nTemp array[i] = array[nChild];else break;array[nChild] = nTemp;} } void heap_create(int *array, int len { for(int i=len/2;i>=0;i--heap_adj(array,i, len;}

void sort_all::sort_heap(int *array, int len { heap_create(array, len;for(int i=len-1;i>0;i--{ swap_i(array[0], array[i];heap_adj(array, 0, i;} } /*******************************************************/ /******************插入排序*****************************/ /*******************************************************/ void sort_all::sort_insert(int *array, int len { int i,j;int temp;for(i=1;i { temp = array[i];for(j=i;j>0 && array[j-1] > temp;j--array[j] = array[j-1];array[j] = temp;} } /********************************************************/

/*************冒泡排序***********************************/ /********************************************************/ void sort_all::sort_maopao(int *array, int len { int i,j;for(i=0;i { for(j=len-1;j>=i;j--{ if(array[j] > array[j+1] swap_i(array[j],array[j+1];} } } /**********************************************/ /**************并歸排序************************/ /**********************************************/ void merge(int * array, int start, int mid, int end { int len_A = midmid;int *A = new int[len_A];int *B = new int[len_B];int i,j;for(i=0;i

A[i] = array[i +start];for(i=0;i B[i] = array[i + mid+1];i=0;j=0;int temp;int k=start;while(i { if(A[i] > B[j] { temp = A[i];i++;} else { temp = B[j];j++;} array[k++] = temp;} while(i { array[k++] = A[i++];}

while(j { array[k++] = B[j++];} } void sort_all::sort_merge(int * array, int start, int end { if(start == end return;else { int mid =(start+end/2;sort_merge(array, start, mid;sort_merge(array, mid+1, end;merge(array, start, mid, end;} } /********************快速排序******************************/ /**********************************************************/ void sort_all::sort_quick(int *array, int start, int end { int key = array[start];int i = start;int j = end;if(i>=j

return;while(i { while(i j--;array[i] = array[j];while(i = array[i] i++;array[j] = array[i];} array[i] = key;sort_quick(array, start, i-1;sort_quick(array, i+1, end;} /****************************************************/ /****************選擇排序****************************/ /****************************************************/ void sort_all::sort_select(int *array, int len { int i,j;int ntemp;int key;for(i=0;i { key = array[i];

ntemp = i;for(j=i+1;j { if(array[j] < key && array[ntemp] > array[j] ntemp = j;} swap_i(array[i], array[ntemp];} } /*****************************************/ /**************** Shell排序****************/ /*****************************************/ void sort_all::sort_shell(int *array, int len { int step = len;int i;while(step >1 { step =(step+1/2;for(i=0;i { if(array[i+step] < array[i] swap_i(array[i+step], array[i];} }

} ————————————————————————————————————————————————————sort_main.cpp文件————————————————— #include “sort_all.h” int main({ int input[] = {2,4,5,1,5,8,10,-2,4};int len = sizeof(input/sizeof(int;int N;sort_all instance;while(1 { instance.disp_num(;cout << “請(qǐng)輸入: ”;cin >> N;if(N==0 break;cout << “-” << “n”;cout<< “原始數(shù)據(jù):” << “n”;instance.disp_array(input, len;switch(N { case 1: instance.sort_maopao(input, len;cout << “冒泡排序結(jié)果:” << “n”;

break;case 2: instance.sort_merge(input, 0, len-1;cout << “并歸排序結(jié)果:” << “n”;break;case 3: instance.sort_insert(input, len;cout << “插入排序結(jié)果:” << “n”;break;case 4: instance.sort_select(input, len;cout << “選擇排序結(jié)果:” << “n”;break;case 5: instance.sort_quick(input, 0, len-1;cout << “快速排序結(jié)果:” << “n”;break;case 6: instance.sort_heap(input, len;cout << “堆排序結(jié)果:” << “n”;break;case 7: instance.sort_shell(input, len;cout << “Shell排序結(jié)果:” << “n”;default:

break;} instance.disp_array(input, len;cout << “------” << “n”;cout << endl;} return 0;}

第二篇:冒泡排序教案

冒泡排序

信息技術(shù) 呂紅波

教學(xué)內(nèi)容分析

教材是教育科學(xué)出版社《算法與程序設(shè)計(jì)》,內(nèi)容為第三章第四節(jié)第一部分《冒泡法排序算法》。排序算法是使用頻率最高的算法之一,而冒泡排序是其中一種很典型而且相對(duì)簡(jiǎn)單的方法,這部分內(nèi)容重點(diǎn)在于介紹冒泡排序的原理以及如何用程序?qū)崿F(xiàn)冒泡排序算法,要求學(xué)生理解冒泡排序的過程的同時(shí),能夠運(yùn)用冒泡排序算法解決實(shí)際問題。

教學(xué)對(duì)象分析

通過前面的學(xué)習(xí),學(xué)生已經(jīng)了解vb算法設(shè)計(jì)的基本知識(shí),學(xué)會(huì)利用自然語言和流程圖描述解決問題的算法,對(duì)排序中循環(huán)語句以及數(shù)組變量的使用方法都有了一定的基礎(chǔ)。但由于程序設(shè)計(jì)思想比較弱,在實(shí)際生活中往往忽視運(yùn)用排序算法來處理實(shí)際問題,這就要求學(xué)生通過本節(jié)課的學(xué)習(xí),學(xué)會(huì)運(yùn)用冒泡排序算法來處理實(shí)際問題,并為以后學(xué)習(xí)其它排序算法打下基礎(chǔ)。

教學(xué)目標(biāo)

1.知識(shí)與技能:

掌握冒泡排序的原理

理解冒泡排序的主要代碼 2.過程與方法:

能夠有效使用冒泡排序思想設(shè)計(jì)解決簡(jiǎn)單的排序問題 3.情感、態(tài)度與價(jià)值觀:

提升分析問題、發(fā)現(xiàn)規(guī)律的能力 形成對(duì)排序算法探索的強(qiáng)烈愿望

教學(xué)重點(diǎn)、難點(diǎn)

教學(xué)重點(diǎn):冒泡排序的過程和原理

教學(xué)難點(diǎn):冒泡排序主程序代碼的實(shí)現(xiàn)

教學(xué)方法

講授法、活動(dòng)型教學(xué)法、任務(wù)驅(qū)動(dòng)教學(xué)法 教學(xué)過程

1.創(chuàng)設(shè)情景、激發(fā)興趣

教師活動(dòng):出示2011-2012賽季NBA部分球員數(shù)據(jù)統(tǒng)計(jì)表。

提問:想知道誰的得分最高,誰的罰球最好,用什么方法? 學(xué)生活動(dòng):學(xué)生思考問題,給出可能性答案:excel排序和用程序設(shè)計(jì)實(shí)現(xiàn)。

2.圖文并茂、理解過程

教師活動(dòng):運(yùn)用程序設(shè)計(jì)中的冒泡排序算法可以實(shí)現(xiàn)。展示圖片,講解冒泡排序“冒泡”由來。

ppt展示任務(wù):運(yùn)用冒泡排序法將10,2,6,7,4從小到大進(jìn)行排列。

結(jié)合ppt對(duì)冒泡排序?qū)崿F(xiàn)過程進(jìn)行講解。

學(xué)生活動(dòng):結(jié)合教師講解和ppt內(nèi)容,理解冒泡排序原理。教師活動(dòng):播放一段關(guān)于冒泡排序的視頻。

3.結(jié)合過程、書寫代碼

教師活動(dòng):講解冒泡排序主程序部分,書寫偽代碼。學(xué)生活動(dòng):理解主程序。

4.總結(jié)歸納、學(xué)以致用

教師活動(dòng):組織學(xué)生開展活動(dòng):隨機(jī)抽選五位男生、五位女生,按性別分組,用布遮住自己的眼睛,每組隨機(jī)排成一隊(duì),要求隊(duì)伍從左到右由高到矮排列,看哪組所用時(shí)間短。

提示:摸對(duì)方的頭頂和自己比較的方式,結(jié)合冒泡排序來 完成。

歸納總結(jié):什么是冒泡法排序?

在排序過程中,使小的數(shù)就像氣泡一樣逐層上浮,而使大的數(shù)逐個(gè)下沉。

拓展延伸:冒泡排序有不足之處。排序算法包括很多:插入排序、選擇排序、快速排序、希爾排序等。

板書設(shè)計(jì)

冒泡法排序Visual Basic偽代碼: For i=1 to 4

For j= 1 TO 5-i

If a(j)>a(j+1)THEN

交換a(j)和a(j+1)的值

End if

Next j Next i 學(xué)習(xí)效果評(píng)價(jià)

1.在教學(xué)實(shí)踐過程中對(duì)學(xué)生操作效果和結(jié)論的及時(shí)反饋評(píng)價(jià)。2.完成本節(jié)課學(xué)習(xí)任務(wù)后,學(xué)生根據(jù)教學(xué)目標(biāo)完成自我評(píng)價(jià)。

教學(xué)反思

本節(jié)課內(nèi)容理論性比較強(qiáng),通過多種方式來向?qū)W生呈現(xiàn)冒泡排序的過程,通過類比的方式讓學(xué)生了解冒泡排序,通過一段有創(chuàng)意的舞蹈來進(jìn)一步讓學(xué)生了解冒泡排序的過程,避免了理論知識(shí)的枯燥,防止學(xué)生課內(nèi)思維疲勞,讓學(xué)生樂于去接受。最后通過一個(gè)簡(jiǎn)單的游戲讓學(xué)生學(xué)以致用,來解決實(shí)際問題。通過教師的歸納總結(jié)讓學(xué)生正確的看待冒泡排序算法。

第三篇:冒泡排序說課稿

冒泡排序說課稿

各位評(píng)委大家好,很高興能給我十分鐘的時(shí)間和大家交流。我叫周芮,來自09教技。今天我要說課的課題是《冒泡排序》。該課選自浙教版《算法與程序設(shè)計(jì)》。排序算法是本書中比較精彩但也是相對(duì)較難的部分之一,它的內(nèi)容豐富,形式多樣。而冒泡排序又是相對(duì)簡(jiǎn)單的一種排序方法。它是本章的第一課時(shí),在本章中起著示范作用,所以講好這節(jié)課是教好以后的課的關(guān)鍵。

綜合以上幾點(diǎn),我將本課的教學(xué)目標(biāo)制定如下: 知識(shí)與技能:

掌握冒泡排序的原理;

理解冒泡排序的流程圖

過程與方法:

通過游戲中對(duì)人物財(cái)富的排序,理解冒泡排序的基

本原理和方法;

通過歸納冒泡排序算法來編寫流程圖

情感態(tài)度價(jià)值觀:培養(yǎng)學(xué)生分析問題以及解決日常生活中實(shí)際問題的人能力,發(fā)現(xiàn)規(guī)律的能力。并激發(fā)學(xué)生主動(dòng)學(xué)習(xí)的興趣

基于對(duì)教材的理解,我將本堂課的重點(diǎn)定為掌握冒泡排序的算法,難點(diǎn)為歸納算法,用流程圖表示。

我們現(xiàn)在面對(duì)的學(xué)生是所謂的90后,他們普遍具有創(chuàng)造性,容易接受新事物,善于發(fā)現(xiàn)的特點(diǎn)。他們對(duì)認(rèn)知規(guī)律從感性逐步提升到了理性。而且學(xué)生有個(gè)普遍的特性就是愛玩,這是他們的天性。基于這一特點(diǎn),我將會(huì)用游戲來引發(fā)他們的學(xué)習(xí)興趣。在知識(shí)準(zhǔn)備方面,學(xué)生

先前已經(jīng)學(xué)過了算法的表示方法,三種基本結(jié)構(gòu),熟悉了變量的運(yùn)用,能用算法描述一般問題的解決步驟。

在教法方面,我將選用演示法、任務(wù)驅(qū)動(dòng)法、練習(xí)法。

在學(xué)法方面,主要是聽講法和自主探究學(xué)習(xí)法,通過老師講解以及自己的親身體驗(yàn)來探究算法的原理。

《師說》中提到,“師者,傳到授業(yè)解惑也”,教學(xué)也就是為學(xué)生解決疑惑的。我的教學(xué)過程也就圍繞“惑”這個(gè)字展開,我稱之為“惑之四部曲”。

第一部曲是“遇惑”。我先創(chuàng)設(shè)一個(gè)游戲情境——大富翁,這是一款比較普遍的游戲,容易引起學(xué)生的共鳴,從而引發(fā)學(xué)生的學(xué)習(xí)興趣。利用游戲中的一個(gè)情景——財(cái)富排行榜,來引出教學(xué)內(nèi)容。首先我展示的排行榜上可能只有幾個(gè)人,同學(xué)們能夠很輕易地給出結(jié)果,可是當(dāng)人數(shù)增多的時(shí)候,同學(xué)們就會(huì)覺得比較困難,當(dāng)人數(shù)到達(dá)一定的數(shù)量后同學(xué)們會(huì)覺得這簡(jiǎn)直是不可能完成的任務(wù)。這樣,老師就可以引出學(xué)習(xí)的內(nèi)容——冒泡排序。

這一設(shè)計(jì),我主要考慮到學(xué)生對(duì)數(shù)量少的數(shù)據(jù)能夠比較容易地完成而不是通過考慮“按什么方法完成的”。這樣增加難度后可以讓學(xué)生體會(huì)到算法的好處,從而引起主動(dòng)學(xué)習(xí)的興趣,可以自然引出冒泡排序算法的思想。第二部曲是“析惑”。

為了讓同學(xué)們腦海中模糊的思想變清晰,我準(zhǔn)備了一個(gè)FLASH課件小游戲,內(nèi)容就是大富翁的財(cái)富排行榜。我制定這么一個(gè)規(guī)則:將財(cái)富從少到多排列。可以通過從右往左的順序兩兩進(jìn)行對(duì)比,將較低的人往左排。

通過這樣一個(gè)環(huán)節(jié),可以讓同學(xué)們比較直觀的感受到冒泡算法的思想,是如何進(jìn)行的。第三部曲是“解惑”

首先我會(huì)請(qǐng)同學(xué)用自然語言來描述算法的思想,我進(jìn)行小結(jié)。接著我將繼續(xù)提問如何用流程圖表示。在這里我先會(huì)引入一個(gè)數(shù)組的概念,用板書演示。為了讓同學(xué)更加透徹了解算法,我會(huì)用數(shù)組來演示詳細(xì)的過程。用變量i表示趟值,用j表示帶比較數(shù)組的位置。若d(j)

在課堂快結(jié)束時(shí)我將會(huì)進(jìn)行課堂小結(jié),回顧本堂課的知識(shí)點(diǎn)提問讓同

學(xué)回答算法思想,達(dá)到鞏固的目的。

最后一部曲是“掃惑”。我會(huì)給同學(xué)們布置一個(gè)任務(wù),給出一張成績(jī)單,上面印有一個(gè)同學(xué)的各科的考試成績(jī)。讓同學(xué)們用冒泡排序算法寫出各趟排序結(jié)果并上交。這樣可以及時(shí)檢測(cè)同學(xué)們是否學(xué)會(huì)了。得到及時(shí)的反饋。

總結(jié):因?yàn)檫@堂課相對(duì)而言是比較難的,如何長(zhǎng)時(shí)間吸引學(xué)生的注意力是我要考慮的一個(gè)問題。為此,我進(jìn)行了如下設(shè)計(jì):

1、用游戲引入課堂,逐步加深問題的難度

2、用FLASH課件演示

3、用表格列舉

4、請(qǐng)同學(xué)們補(bǔ)充流程圖

第四篇:冒泡排序法教案

數(shù)據(jù)結(jié)構(gòu)——冒泡排序(第19講,第9章)

一、復(fù)習(xí)回顧

什么是排序:排序是把一個(gè)無序的數(shù)據(jù)元素序列整理成有規(guī)律的按排序關(guān)鍵字遞增(或遞減)排列的有序序列的過程。

/************************************************(已經(jīng)學(xué)過的排序方法有:直接插入排序、希爾排序、直接插入排序:順序的把待排序序列中的各個(gè)記錄按其關(guān)鍵字的大小,插入到已排序的序列的適當(dāng)位置。

希爾排序:(縮小增量排序),不斷把待排序的記錄分成若干個(gè)小組,對(duì)同一組內(nèi)的記錄進(jìn)行排序,在分組時(shí),始終保持當(dāng)前組內(nèi)的記錄個(gè)數(shù)超過前面分組排序時(shí)組內(nèi)的記錄個(gè)數(shù)。)

************************************************/

二、第一小節(jié)(目標(biāo):理解掌握冒泡思想)

1、給出冒泡排序的定義(25分鐘)

將待排序序列中第一個(gè)記錄的關(guān)鍵字R1.key與第二個(gè)記錄的關(guān)鍵字R2.key作比較,如果R1.key>R2.key,則交換記錄R1和R2在序列中的位置,否則不交換;然后繼續(xù)對(duì)當(dāng)前序列中的第二個(gè)記錄和第三個(gè)記錄作同樣的處理,依此類推,知道序列中倒數(shù)第二個(gè)記錄和最后一個(gè)記錄處理完為止,我們稱這樣的過程為一次冒泡排序。

2、請(qǐng)學(xué)生上臺(tái)做排序練習(xí)(15分鐘做題+10分鐘講解)(鞏固排序思想的掌握)

第一題: 38 5 19 26 49 97 1 66 第一次排序結(jié)果:5 19 26 38 49 1 66 [97] 第二次排序結(jié)果:5 19 26 38 1 49 [66 97] 第三次排序結(jié)果:5 19 26 1 38 [49 66 97] 第四次排序結(jié)果:5 19 1 26 [38 49 66 97] 第五次排序結(jié)果:5 1 19 [26 38 49 66 97] 第六次排序結(jié)果:1 5 [19 26 38 49 66 97] 第七次排序結(jié)果:1 [5 19 26 38 49 66 97] 最后結(jié)果序列: 1 5 19 26 38 49 66 97

第二題: 8 7 6 5 4 3 2 1

數(shù)據(jù)結(jié)構(gòu)——冒泡排序(第19講,第9章)

答 第一次排序: 7 6 5 4 3 2 1 [8] 第二次排序: 6 5 4 3 2 1 [7 8] 第三次排序: 5 4 3 2 1 [6 7 8] 第四次排序: 4 3 2 1 [5 6 7 8] 第五次排序: 3 2 1 [4 5 6 7 8] 第六次排序: 2 1 [3 4 5 6 7 8] 第七次排序: 1 [2 3 4 5 6 7 8] 最后結(jié)果序列: 1 2 3 4 5 6 7 8

第二題: 1 2 3 4 5 6 7 8 第一次排序: 1 2 3 4 5 6 7 [8] 第二次排序: 1 2 3 4 5 6 [7 8] 第三次排序: 1 2 3 4 5 [6 7 8] 第四次排序: 1 2 3 4 [5 6 7 8] 第五次排序: 1 2 3 [4 5 6 7 8] 第六次排序: 1 2 [3 4 5 6 7 8] 第七次排序: 1 [2 3 4 5 6 7 8] 最后結(jié)果序列: 1 2 3 4 5 6 7 8]

從練習(xí)題中引出:一次冒泡排序的結(jié)果:使關(guān)鍵字最大的記錄排在了序列的最后一個(gè)位置上。(這很重要,要強(qiáng)調(diào))

比較后兩題的題目區(qū)別和排序過程區(qū)別,作為課間思考題。(第二題是一組逆序數(shù)據(jù),每一個(gè)排序都進(jìn)行了數(shù)據(jù)交換,共進(jìn)行了8-1=7次冒泡;第三題是一組正序數(shù)據(jù),進(jìn)行完一次排序后就發(fā)現(xiàn),沒有任何數(shù)據(jù)交換發(fā)生,后面進(jìn)行的第二次到第七次冒泡的過程完全一樣。)

三、第二小節(jié)

3、冒泡排序終止的條件(20分鐘)

課堂思考題:考慮任何一組序列最多進(jìn)行多少次冒泡排序就可保證順序一定已經(jīng)排好了。

思考:如果序列初始順序是逆序,需要進(jìn)行多少次排序(要記住,數(shù)據(jù)結(jié)構(gòu)——冒泡排序(第19講,第9章)

每次冒泡排序的結(jié)果:可以保證最大的記錄在最后一個(gè)位置上)。如果序列初始順序是正序,需要進(jìn)行多少次排序就可以保證數(shù)據(jù)序列順序。如何使排序過程適可而止?既排好序又不多余進(jìn)行?

當(dāng)計(jì)算機(jī)對(duì)一組數(shù)據(jù)進(jìn)行排序之前,并不知道該組數(shù)據(jù)是什么順序,因此,必須要進(jìn)行至少一次的比較和排序,當(dāng)某一比較和排序進(jìn)行完之后發(fā)現(xiàn)沒有任何數(shù)據(jù)交換發(fā)生,證明任何相鄰的兩數(shù)都符合目標(biāo)順序要求,因此,也不必再進(jìn)行下一下比較排序了。

結(jié)論:當(dāng)進(jìn)行某次冒泡排序時(shí),若沒有任何兩個(gè)記錄交換位置,則表明序列已排好,此時(shí)排序可結(jié)束。

4、用文字(偽碼)描述冒泡排序算法(15分鐘)思考方法:

首先是對(duì)數(shù)組的相鄰的兩數(shù)比較,根據(jù)比較結(jié)果確定是否交換位置;這種比較進(jìn)行的次數(shù)比數(shù)據(jù)列中數(shù)據(jù)個(gè)數(shù)少1;

(此兩步完成了一次冒泡排序)

對(duì)一個(gè)序列來說,共進(jìn)行多少次冒泡排序呢?最多和上面第二步的比較次數(shù)一樣,但也可提前結(jié)束,只要在某一遍冒泡中沒有發(fā)生數(shù)據(jù)交換即可。如何確實(shí)是否發(fā)生數(shù)據(jù)交換,在程序中,可以考慮設(shè)置一個(gè)標(biāo)志位,當(dāng)發(fā)生數(shù)據(jù)交換時(shí),更改標(biāo)志位,每次重新進(jìn)行冒泡排序之前可以檢查標(biāo)志位,如果沒有發(fā)生改變,則可證明上一次冒泡已經(jīng)沒有數(shù)據(jù)交換發(fā)生,也就是說數(shù)據(jù)序列已經(jīng)排好,可以停止進(jìn)行冒泡排序。

冒泡算法函數(shù) { 設(shè)置標(biāo)志位;

//以下循環(huán)用來控制冒泡排序進(jìn)行的次數(shù)

數(shù)據(jù)結(jié)構(gòu)——冒泡排序(第19講,第9章)

for循環(huán)(對(duì)n個(gè)數(shù)據(jù)的序列進(jìn)行n-1次冒泡,但是如果沒有交換發(fā)生則跳出該循環(huán)){ //以下循環(huán)用來對(duì)該數(shù)據(jù)序列進(jìn)行一次冒泡排序 for(單次冒泡排序需要進(jìn)行n-1次){ 比較相鄰兩數(shù)的大小;

if(前大后小){ 交換 } else //前小后大 {

位置不變 } } } }

5、回顧總結(jié)冒泡排序的思想(10分鐘)本節(jié)課:

1.首先回顧了什么是排序;

2.然后介紹了冒泡排序的思想;(每次冒一個(gè)泡泡,把最大的冒到最后)3.我們通過三道練習(xí)題對(duì)一組無序數(shù)據(jù)進(jìn)行了排序;

4.通過練習(xí)題我們看出來,數(shù)據(jù)初始序列越接近目標(biāo)序列,冒泡的次數(shù)越少;因此我們總結(jié)出了冒泡排序最多進(jìn)行的次數(shù)和終止的條件; 5.最后,我們根據(jù)冒泡排序的思想用文字描述了冒泡函數(shù)的構(gòu)成方法;

四、課后作業(yè)

1、用冒泡排序法對(duì)數(shù)字序列進(jìn)行排序(要寫出6次排序步驟)

55 48 37 10 90 84 答 55 48 37 10 60 84 90 48 37 10 55 60 84 90 37 10 48 55 60 84 90 10 37 48 55 60 84 90

數(shù)據(jù)結(jié)構(gòu)——冒泡排序(第19講,第9章)

10 37 48 55 60 84 90

2、用C語言描述冒泡排序算法。

Void BubbleSort(elemtype x[],int n)//傳入序列和序列數(shù)字個(gè)數(shù) {

int i,j,flag=1;elemtype

temp;for(i=1;i x[j+1].key){ flag=1;temp=x[j];x[j]=x[j+1];x[j+1]=temp;} } } }

第五篇:冒泡排序及選擇排序Java實(shí)現(xiàn)心得

/*選擇排序*/

public class SelectSort2 { public static void sort(int[] tempArr){

for(int i =0;i

{

/*

當(dāng)初錯(cuò)誤認(rèn)為此處與冒泡排序極為相像,甚至覺得選擇排序與冒泡排序毫無差別,其實(shí)相反,冒泡循環(huán)意味著每一次

循環(huán)都會(huì)將相鄰的兩個(gè)數(shù)比較這樣每次都會(huì)排出數(shù)組中最大或最小的數(shù)。然后再次執(zhí)行外層循環(huán),再繼續(xù)進(jìn)入內(nèi)層循環(huán)

再依次進(jìn)行比較。

選擇排序則是,第一次循環(huán):咬定第一個(gè)數(shù)角標(biāo)i=0的元素,依次與后面的元素比較,將最小或最大的數(shù)排出來,再進(jìn)入

外層的第二次循環(huán),并且此時(shí)咬定的數(shù)為角標(biāo)為1的元素,但因?yàn)橹耙褜⑷珨?shù)組中最小或最大的數(shù)排出所以沒有必要再

與數(shù)組中角標(biāo)為零得數(shù)比較 而是通過 j=i+1 將待比較的角標(biāo)變成[

2、3、...、tempArr.length)。

*/

for(int j =i+1;j

{

if(tempArr[i]>tempArr[j])

{

int temp = tempArr[i];

tempArr[i] = tempArr[j];

tempArr[j] = temp;

}

}

}

} public static void arrPrint(int[] tempArr){

System.out.print(“[”);

for(int i = 0;i

{

if(i!= tempArr.length-1)

{

System.out.print(tempArr[i]+“,”);

}

else

{

System.out.println(tempArr[i]+“]”);

}

} }

public static void main(String args[]){ int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3};arrPrint(arr);sort(arr);arrPrint(arr);} } /*冒泡排序*/ public class MpSort2 { public static void sort(int[] tempArr){

for(int i = 0;i

{

for(int j = 0;j

{

if(tempArr[j]>tempArr[j+1])

{

int temp = tempArr[j];

tempArr[j] = tempArr[j+1];

tempArr[j+1] = temp;

}

}

}

} public static void arrPrint(int[] tempArr){

System.out.print(“[”);

for(int i = 0;i

{

if(i!= tempArr.length-1)

{

System.out.print(tempArr[i]+“,”);

}

else

{

System.out.println(tempArr[i]+“]”);

}

} } public static void main(String[] args){

int[] arr = new int[]{10,2,-7,8,1,12,6,7,9,3};

arrPrint(arr);

sort(arr);

arrPrint(arr);} }

下載排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)(合集五篇)word格式文檔
下載排序程序小結(jié)(冒泡排序、并歸排序、插入排序等)(精)(合集五篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

主站蜘蛛池模板: 女人高潮被爽到呻吟在线观看| 中文字幕乱码一区二区免费| 小妖精又紧又湿高潮h视频69| 国产在线精品一品二区| 国产高清中文手机在线观看| 欧美性色欧美a在线播放| 丰满岳乱妇在线观看中字无码| 国产成熟妇女性视频电影| 天堂v亚洲国产v第一次| 少妇精油按摩av无码中字| 久久国产热这里只有精品| 无码少妇一区二区三区免费| 国产偷亚洲偷欧美偷精品| 大陆熟妇丰满多毛xxxx| 亚洲精品国产精品乱码视色| 一本大道无码日韩精品影视丶| 国产精品久久久av久久久| 免费国产成人高清在线视频| 免费精品一区二区三区a片| 影音先锋女人av鲁色资源网久久| 午夜色大片在线观看免费| 九九视频免费精品视频| 国产香蕉尹人在线观看视频| 丁香色婷婷国产精品视频| 中文字幕无码乱人伦在线| 内射无码专区久久亚洲| 久久精品国产精品亚洲毛片| 日韩一欧美内射在线观看| 欧美黑人性暴力猛交喷水黑人巨大| 欧美一区二区三区视频在线观看| 国产成人av 综合 亚洲| 欧美白胖bbbbxxxx| 337p日本欧洲亚洲大胆在线| 欧美亚洲人成网站在线观看| 欧洲熟妇色xxxx欧美老妇老头多毛| 欧美巨大黑人极品精男| 国产真实露脸乱子伦原著| 国产精品碰碰现在自在拍| 国产欧美va天堂在线观看视频| 999久久国产精品免费人妻| 99久久精品免费看国产一区二区三区|