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.

主站蜘蛛池模板: 老色鬼久久亚洲AV综合| 国产精品永久免费嫩草研究院| 91亚洲视频下载| 三上悠亚在线精品二区| 天天爽免费视频| 伊人精品视频免费在线| 国禁国产you女视频网站| 波多野结衣在线se| 国产亚洲精久久久久久无码AV| 日本尹人综合香蕉在线观看| 久久综合激情网| 国产综合色在线视频播放线视| 免费人欧美成又黄又爽的视频| 国模沟沟一区二区三区| 欧美成人精品高清在线下载| 亚洲欧美日韩精品专区| 国产欧美日本在线观看| 久久久无码人妻精品无码| 日韩无码真实干出血视频| 国产一级毛片在线| 日韩a级毛片| 在线观看亚洲精品福利片| 91精品网站| 国产精品极品美女自在线网站| 亚洲精品国产综合99久久夜夜嗨| 亚洲成年人网| 亚洲国产成人超福利久久精品| 亚洲AⅤ波多系列中文字幕| 国产亚洲精品无码专| 狠狠综合久久久久综| 亚洲无码高清免费视频亚洲 | 在线国产毛片| 国产91高跟丝袜| 久久综合结合久久狠狠狠97色| 欧美日韩高清| 精品久久人人爽人人玩人人妻| 天天做天天爱夜夜爽毛片毛片| 国产成人91精品| 国产在线精彩视频论坛| 成人在线亚洲| 福利视频99| 日本国产一区在线观看| 日韩美一区二区| 亚洲视频四区| 色综合a怡红院怡红院首页| 综合色在线| 亚洲中文字幕国产av| 亚洲va视频| 91精品福利自产拍在线观看| 国产呦视频免费视频在线观看| 午夜不卡视频| 亚洲国产成人久久77| 国产精品永久在线| 日韩在线观看网站| 再看日本中文字幕在线观看| 秋霞午夜国产精品成人片| 91丝袜乱伦| 欧美精品导航| 国产精品人成在线播放| 精品人妻无码中字系列| 久久精品国产999大香线焦| 久久久久国产精品嫩草影院| 国产大片喷水在线在线视频| 二级特黄绝大片免费视频大片| 国产一区二区三区精品久久呦| 亚洲欧洲综合| 黄色网页在线播放| 国产美女视频黄a视频全免费网站| 中文字幕亚洲乱码熟女1区2区| 浮力影院国产第一页| 国产经典在线观看一区| 老熟妇喷水一区二区三区| 亚洲人成网址| 直接黄91麻豆网站| 日韩精品免费在线视频| 天天躁日日躁狠狠躁中文字幕| 亚洲日本韩在线观看| www.亚洲国产| 一本色道久久88亚洲综合| 午夜爽爽视频| 亚洲第一成人在线| 福利小视频在线播放|