首页 > 代码库 > 简单排序的 改进
简单排序的 改进
//简单选择排序源码 void SelectSort( int a[], int n ) { int i, j; for( i = 0; i < n - 1; i++ ) { for( j = i + 1;j < n; j++ ) if ( a[ i ] > a[ j ] ) { int tmp = a[ j ]; a[ j ] = a[ i ]; a[ i ] = tmp; } } } void SelectSort_2(int r[],int n) { int i ,j , min ,max, tmp; for (i=0 ;i < n/2; i++) { min = i; max = i ; for( j = i + 1; j <= n - i; j++ ) { if ( r[ j ] > r[ max ] ) { max = j; } if ( r[ j ] < r[ min ] ) { min = j; } } tmp = r[ i ]; r[ i ] = r[ min ]; r[ min ] = tmp; if ( max != i ) //此处需注意,如第二次交换的是已经进行过交换的下标要注意!!! { tmp = r[ n - i]; r[ n - i ] = r[max]; r[ max ] = tmp; } else { tmp = r[ n - i]; r[ n - i ] = r[min]; r[ min ] = tmp; } for (int k = 0; k <= n; k++ ) printf( "%d\t", r[ k ] ); printf( "\n"); } }
本文出自 “马二丫” 博客,请务必保留此出处http://8734514.blog.51cto.com/8724514/1567701
简单排序的 改进
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。