999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

選擇排序算法常見問題分析

2018-06-05 10:33:18白洪濤何麗莉孫良鳳
科教導刊·電子版 2018年2期

白洪濤 何麗莉 孫良鳳

摘 要 針對非計算機專業學生算法學習和程序實現所面臨的困難,將選擇排序分解為在序列中尋找最值和元素交換兩個步驟,分析了學生在程序實現上容易犯的典型錯誤。本文對算法和程序設計類教學有一定的借鑒意義。

關鍵詞 選擇排序 數據結構 常見錯誤 C語言

中圖分類號:O156.4 文獻標識碼:A

0引言

《算法與數據結構》不僅是計算機科學的重要專業基礎和核心課程,而且也越來越多地被非計算機專業所要求學習和掌握。排序算法是該課程的重要組成部分,在筆者所教授的地學各學院的《C語言程序設計基礎》和《數據結構》課程中均是講解的重點和難點,尤其是《C語言程序設計基礎》一般安排在《數據結構》課程之前,如何在基本的程序設計都比較陌生的學生中建立算法的思維,從而將排序算法和實際的程序對應起來,更是一個挑戰。

本文在《C語言程序設計基礎》課程教學過程中,設計選擇排序教學過程,分析了學生典型的兩種實現錯誤。

1選擇排序算法教學設計

1.1算法思想

選擇排序是一種直觀的排序算法。它的工作原理如下(以升序為例)。首先在未排序序列中找到最小元素,存放到該序列的第一個位置,即第一個位置的元素與該序列中最小元素交換,然后,再從剩余未排序元素中繼續尋找最小元素,放到第二個位置(交換)。以此類推,直到所有元素均排序完畢。

1.2算法實現

通過上述算法分析講解,可以將選擇排序過程具體化為兩個步驟:

(1)在一個特定(未排序)序列中找出最小值(最大值)。

(2)用該數和未排序序列中的第一個數進行交換。

給出選擇排序的C語言程序如下:

#include

int main()

{

int i, a[6];

int min, loc;

int j, t;

printf("please input 6 integer numbers:\n");

for ( i=0; i<6; i++ )

scanf("%d", &a;[i]);

for ( j=0; j<5; j++ ) //控制循環的趟數 n-1

{

min = a[j];

loc = j;

for ( i=j+1; i<6; i++ ) //在未排序序列中選最小a[loc]

if ( min > a[i] )

{

min = a[i];

loc = i;

}

//a[loc]與a[j]交換

t = a[j];

a[j] = a[loc];

a[loc] = t;

}

for ( i=0; i<6; i++ )

printf("%d ", a[i]);

printf("\n");

return 0;

}

2常見錯誤分析

在C語言程序編寫過程中,有的同學未能正確實現算法,典型的問題如下:

錯誤實現1:

for ( j=0; j<5; j++ )

{

min = a[j];

loc = j;

for ( i=j+1; i<6; i++ )

if ( min > a[i] )

{

min = a[i];

loc = i;

}

a[j] = a[loc];

}

在算法的主體程序塊,能夠正確在未排序序列中選出最小值a[loc],但是該元素只是簡單地復制到了a[j]中,原有的a[j]被覆蓋,沒有保存下來,錯誤結果如下圖所示:

錯誤實現2:

for ( j=0; j<5; j++ )

{

for ( i=j+1; i<6; i++ )

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

{

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

本程序在未排序序列中只要找到一個“小值”,就迫不及待地進行交換,雖然也能正確地實現排序,但這不是嚴格的選擇排序,產生了很多“無用”的交換步驟,降低了程序實際執行效率。

3結束語

熟練掌握一門計算機程序設計語言無論是對計算機還是非計算機專業的學生都是非常重要的。算法的學習不應該是死記硬背,要學會分析問題,并能夠通過從錯誤逐步走向正確,增強學生獨立解決實際問題的編程能力。

作者簡介:白洪濤(1975-),男,漢族,吉林榆樹人,博士,副教授,主要從事高性能計算研究;通信作者:何麗莉(1976-),女,漢族,吉林洮南人,博士,副教授,主要從事基于WSN的環境智能研究。

參考文獻

[1] 嚴蔚敏,吳偉民.數據結構[M].北京:清華大學出版社,2004.

[2] 譚浩強.C 程序設計(第四版)[M].北京:清華大學出版社,2010.

主站蜘蛛池模板: 亚欧美国产综合| 成人va亚洲va欧美天堂| 日韩中文精品亚洲第三区| 欧美色综合网站| 制服丝袜一区| 久久人妻系列无码一区| 专干老肥熟女视频网站| 成人国产精品2021| 毛片在线播放a| 韩日无码在线不卡| 超碰色了色| 国产无码精品在线| 亚洲一区二区无码视频| 成人久久精品一区二区三区 | 国产欧美日韩精品第二区| 91麻豆国产视频| 亚洲天堂久久新| 亚洲无码熟妇人妻AV在线| 91久久夜色精品国产网站| 丁香五月激情图片| 99热这里只有精品免费国产| 欧美日韩国产精品va| 亚洲国产成人精品青青草原| 亚洲国产成人久久精品软件| 2020精品极品国产色在线观看| 精品视频一区二区三区在线播| 五月婷婷亚洲综合| 精品少妇人妻一区二区| 四虎国产永久在线观看| AV网站中文| www.精品国产| 久久久久中文字幕精品视频| 亚洲人成在线精品| 91成人在线观看| 女人天堂av免费| 国产男女免费视频| av在线人妻熟妇| 日本AⅤ精品一区二区三区日| 国模在线视频一区二区三区| 亚洲综合精品香蕉久久网| www.91中文字幕| 欧美www在线观看| 亚洲毛片一级带毛片基地| 嫩草国产在线| 91在线国内在线播放老师 | 亚洲无码熟妇人妻AV在线| 亚洲第一香蕉视频| www.youjizz.com久久| 亚洲一级色| 亚洲另类国产欧美一区二区| 国产亚洲视频在线观看| 国产特级毛片aaaaaaa高清| 中文毛片无遮挡播放免费| 最新加勒比隔壁人妻| V一区无码内射国产| 亚洲欧美日韩中文字幕一区二区三区| 九九香蕉视频| 婷婷激情亚洲| 国产aaaaa一级毛片| av天堂最新版在线| 欧美午夜在线播放| 国产永久无码观看在线| 精品国产亚洲人成在线| 国产成人久久综合777777麻豆 | 国产丝袜第一页| 国产视频自拍一区| 亚洲精品中文字幕无乱码| 永久免费精品视频| 国产精品成人免费视频99| 亚洲性影院| 国产精品免费露脸视频| 真实国产乱子伦高清| 国产成人高清精品免费5388| 久久综合亚洲色一区二区三区| 欧美亚洲日韩不卡在线在线观看| 成人国产免费| 欧美国产日韩在线观看| 国产福利小视频在线播放观看| 她的性爱视频| 欧美激情第一欧美在线| 久久国产精品电影| 伊人无码视屏|