选择排序

       请编写一个程序,读取数列A,利用选择排序法将其按升序排列并输出。另外,请输出程序实际运行过程中执行交换操作的次数。代码如下:
#include<stdio.h>
int selectionSort(int A[],int N){
	int i,j,t,sw = 0,minj;
	for(i = 0;i<N-1;i++){
		minj = i;
		for(j = i;j<N;j++){
			if(A[j]<A[minj]) minj = j;
		}
		t = A[i]; A[i] = A[minj]; A[minj] = t;
		if(i!=minj) sw++; 
	}
	return sw;
} 
int main(){
	  int A[100], N, i, sw;
	  scanf("%d",&N);
	  for(i = 0;i<N;i++) scanf("%d",&A[i]);
	  sw = selectionSort(A,N);
	  for(i = 0;i<N;i++){
	  	if(i>0) printf(" ");
	  	printf("%d",A[i]);
	   } 
	  printf("\n");
	  printf("%d\n",sw); 
	  return 0;
}

  
    
阅读更多
上一篇插入排序
下一篇归并排序
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭