《计算机技术基础C语言 (20).pdf》由会员分享,可在线阅读,更多相关《计算机技术基础C语言 (20).pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机技术基础(计算机技术基础(C语言)语言)电子信息系电子信息系计算机技术基础(计算机技术基础(C语言)语言)排序2排序排序算法算法:按照某种特定的顺序排列数据按照某种特定的顺序排列数据选择排序选择排序冒泡排序冒泡排序分为分为升序升序和和降序降序计算机技术基础(计算机技术基础(C语言)语言)选择排序3选择排序算法:选择排序算法:算法思想:算法思想:挑选数据,放置到指定位置挑选数据,放置到指定位置1、从所有数中找出最小的,放到第一个元素、从所有数中找出最小的,放到第一个元素位置(升序)位置(升序)2、再从剩余的数中找出最小的,放到第二个、再从剩余的数中找出最小的,放到第二个元素位置元素位置3、
2、以此类推,直到倒数第二个位置挑选完毕,、以此类推,直到倒数第二个位置挑选完毕,最终完成排序最终完成排序计算机技术基础(计算机技术基础(C语言)语言)*选择排序4x0 x3x2x1x458624i=0i=1i=2i=3tk*int main()return 0;for(i=0;i4;i+)for(j=i+1;jxj)k=j;int x5=5,8,6,2,4,i,j,k,t;for(i=0;i5;i+)printf(%dt,xi);if(k!=i)t=xi;xi=xk;xk=t;j=1j=2j=3j=40 35251 4488235663最小数放在固定位置最小数放在固定位置k=i;寻找最小值下标的
3、过程寻找最小值下标的过程【例例】完成完成5个数的个数的升序排序(选择排序)升序排序(选择排序)6计算机技术基础(计算机技术基础(C语言)语言)冒泡排序5【例例】完成完成5个数的个数的升序排序(升序排序(冒泡冒泡排序)排序)冒泡排序算法:冒泡排序算法:算法思想:算法思想:相邻两数进行比较相邻两数进行比较,按照从小到大或者,按照从小到大或者从大到从大到小的顺序小的顺序进行交换。进行交换。把较小的值像气泡一样逐层“上浮”到水面(数组前部),最终形成升序排列把较小的值像气泡一样逐层“上浮”到水面(数组前部),最终形成升序排列把较大的值像石子一样逐层“下沉”到水底(数组后部),最终形成升序排列把较大的值
4、像石子一样逐层“下沉”到水底(数组后部),最终形成升序排列 小数上冒小数上冒 大数沉底大数沉底升序升序降序降序计算机技术基础(计算机技术基础(C语言)语言)冒泡排序69853285329895328593285392853295832953829532895328935289325893258923589第第1次次 第第2次次第第3次次第第4次次结果结果第第1次次第第2次次第第3次次结果结果第第1次次 第第2次次结果结果第第1次次结果结果第第1趟趟第第2趟趟第第3趟趟第第4趟趟i表示趟数(表示趟数(0到到3)j控制比较的次数控制比较的次数x0 x1x2x3x4计算机技术基础(计算机技术基础(C
5、语言)语言)冒泡排序79853285329895328593285392853295832953829532895328935289325893258923589第第1次次 第第2次次第第3次次第第4次次结果结果第第1次次第第2次次第第3次次结果结果第第1次次 第第2次次结果结果第第1次次结果结果第第1趟趟第第2趟趟第第3趟趟第第4趟趟i表示趟数(表示趟数(0到到3)j控制比较的次数(控制比较的次数(0到到3-i)x0 x1x2x3x4比较比较4次次比较比较3次次比较比较2次次比较比较1次次计算机技术基础(计算机技术基础(C语言)语言)冒泡排序8for(i=0;i=3;i+)for(j=0;j xj+1)t=xj;xj=xj+1;xj+1=t;外层循环控制趟数外层循环控制趟数里层循环控制每里层循环控制每趟的比较次数趟的比较次数计算机技术基础(计算机技术基础(C语言)语言)排序9选择排序选择排序冒泡排序冒泡排序相同点相同点不同点不同点使用双重循环使用双重循环关注关注位置位置,为位,为位置选数置选数关注逐层,逐层关注逐层,逐层体现于体现于相邻相邻计算机技术基础(计算机技术基础(C语言)语言)一维数组10插入插入删除删除查找查找
限制150内