基础算法之排序(2)--选择排序 改进
来源:互联网 发布:风电 知乎 编辑:程序博客网 时间:2024/06/04 20:12
/********************************************************************************************************** * Function : test * Create Date : 2014/03/23 * Author : NTSK13 * Email : beijiwei@qq.com * Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。 任何单位和个人不经本人允许不得用于商业用途 转载请注明 转自 http://blog.csdn.net/beijiwei * Version : V0.1 * date : 2014/03/23 * history : V0.1 *********************************************************************************************************** 算法基础之排序(2)--选择排序 改进(1)基本思想: 对待排序的一组数据从前之后进行扫描,若发现相邻的两个数不同时,将这两个数进行交换. 升序和降序是同样道理. 假如待排序的一组数存于array[N],则需要对数组进行N-1次扫描 第1次扫描: 目标array[0] , 分别和array[1],array[2]...array[N-1] 进行对比,若比array[0]小,则交换.之后array[0]为最小值 第2次扫描: 目标array[1] , 分别和array[2],array[3]...array[N-1] 进行对比,若比array[1]小,则交换.之后array[0]为次小值 . . . 第N-1次扫描: 目标array[N-2] , 和array[N-1] 进行对比,若比array[N-1]小,则交换.之后array[N-1]为最大值. 结束.缺点: 这种方法如果两个数不等,则每次都要交换. 改进: 在一次扫描时,只记录下标,等该次扫描结束,有改变再交换大小.**********************************************************************************************************/ #include<stdio.h> int main() { int i=0,j=0,tmp=0,k=0,array[10]={2,5,6,8,4,3,1,7,9,0}; printf("Before sort, The element of array is: \n"); for(i=0;i<10;i++){printf("%d \t",array[i]); }/*********************************************************************************************************/for(i=0;i<9;i++){ tmp=array[i];k=0;for(j=i+1;j<9;j++){if(tmp>array[j]){tmp=array[j];k=j;}}if(k!=0){tmp=array[i];array[i]=array[k];array[k]=tmp;}}/*********************************************************************************************************/printf("\n After sort, The element of array is: \n"); for(i=0;i<10;i++){printf("%d \t",array[i]); } printf("\n"); return 0; }
0 0
- 基础算法之排序(2)--选择排序 改进
- 基础算法之排序(2)--选择排序
- 基础算法之选择排序
- 算法基础之选择排序
- 算法基础之选择排序
- 基础算法之 选择排序
- 算法基础之排序篇-选择排序
- 基础算法之排序(2)--简单选择排序
- 基础算法之排序(1)--冒泡排序 改进
- 堆排序算法(选择排序改进)
- 【基础算法】排序-简单排序之二(选择排序)
- Lucene基础排序算法改进
- 【算法基础】选择排序
- 【基础算法】选择排序
- 基础算法系列(十五)排序算法之选择排序
- 算法(algorithms)基础之:选择排序
- java基础算法之选择排序
- 算法基础之选择排序法
- C++ 添加程序图标到我的电脑
- Android中ListView,SQLite,BaseAdapter的结合
- Phonegap返回键backbutton功能 cordova
- HTML表单中Readonly和Disabled的区别
- web socket在PHP中的应用
- 基础算法之排序(2)--选择排序 改进
- C语言经典算法100例-036-求100之内的素数
- web.xml 中 classpath*:与classpath:的区别
- 如何在Phpstorm中设置FTP,并快速进行文件比较,上传下载,同步等操作
- (转) 项目经理问:为什么总是只有我在加班–挂包袱现象
- 送礼物
- 回调函数的作用
- POJ 3264 Balanced Lineup
- POJ 1321 棋盘问题 深搜+回溯