资源预览内容
第1页 / 共2页
第2页 / 共2页
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
学而时习之生活中的算法选择排序排序有个前提,就是将要排序的是同一数据类型,选择排序算法类似于打麻将整理 清一色麻将的过程,假如麻将不能移动,只能交换的话,玩家会从头到尾部找一张最小 的牌,然后与第一位置的牌交换位置,然后从剩下牌中依次找到最小的放到i张牌中, 使之从小到大排好序。简单选择排序的基本思想:第1趟,在待排序记录r1rn中选出最小的记录,将它与r1交换;第2趟,在待排序记录r2rn中选出最小的记录,将它与r2交换;以此类推,第i趟在待排序记录rirn中选出最小的记录,将它与ri交换, 使有序序列不断增长直到全部排序完毕。以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:初始序列: 49 27 65 97 76 12 38 第 1 趟:12与49交换:12 27 65 97 76 49 38 第2趟:27不动:12 27 65 97 76 49 38 第3趟:65与38交换:12 27 38 97 76 49 65 第4趟:97与49交换:12 27 38 49 76 97 65 第5趟:65与76交换:12 27 38 49 65 97 76 第6趟:97与76交换:12 27 38 49 65 76 97完成#includevstdio.h选择排序void select_sort(int *arr,int len)学而时习之int i,j,index,h;/ /i是第i次排序,j是比较字符的位置下标【n-1趟排序】假设index是最小的查找最小记录的位置若无序区第一个元素不是无序区中最小元素,则进行交换int temp;for(i=0;ivlen-l;i+)index=i;for(j=i+1;jlen;j+)if(arrjarrindex)index=j;if(index!=i)temp=arri; arri=arrindex;arrindex=temp;printf(”第小步排序结果:,i);for(h=0;hvlen;h+)printf(”d ,arrh);printf(n);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号