基本的排序算法之——选择排序法
/********************************************************************** * Copyright (c)2015,WK Studios * Filename: * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 4 20 ************************************************************************/ #include<stdio.h> void Change_Sort1(int *a,int len) { for(int i=0;i<len;i++) { int min=i; for(int j=i+1;j<len;j++) { if(a[j]<a[min]) min=j; } int temp=a[i]; a[i]=a[min]; a[min]=temp; } } //轻微优化 void Change_Sort2(int *a,int len) { for(int i=0;i<len;i++) { int min=i; for(int j=i+1;j<len;j++) { if(a[j]<a[min]) min=j; } if(min!=i)//这里优化可以减少交换,自己与自己不交换 { int temp=a[i]; a[i]=a[min]; a[min]=temp; } } } int main() { int a[]={1,3,5,2,9,6,8,7}; Change_Sort1(a,sizeof(a)/sizeof(a[0])); //Change_Sort2(a,sizeof(a)/sizeof(a[0])); for(int i=0;i<sizeof(a)/sizeof(a[0]);i++) { printf("%d ",a[i]); } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。