C语言 利用选择排序法对数组中10个整数由小到大排序

Source

选择排序法原理:

在这里插入图片描述

方法一:常规计算

#include<stdio.h>
int main(){
    
      
	int i,j,min,temp,a[11];
	printf("enter data:\n");
	for(i=1;i<=10;i++){
    
      
		printf("a[%d]=",i);
		scanf("%d",&a[i]);
	}
	printf("\n");
	printf("The orginal numbers:\n");
	for(i=1;i<=10;i++)
		printf("%5d",a[i]);
	printf("\n");
	for(i=1;i<=9;i++){
    
      
		min=i;
		for(j=i+1;j<=10;j++)
			if(a[min]>a[j])
				min=j;
		temp=a[i];
		a[i]=a[min];
		a[min]=temp;
	}
	printf("\nThe sorted numbers:\n");
	for(i=1;i<=10;i++)
		printf("%5d",a[i]);
	printf("\n");
	return 0;
}

在这里插入图片描述

方法二:函数调用

#include <stdio.h>
void sort(int array[],int n){
    
      
	int i,j,k,t;
	for(i=0;i<n-1;i++){
    
      
		k=i;
		for(j=i+1;j<n;j++)
			if(array[j]<array[k])
				k=j;
	
	t=array[k];
	array[k]=array[i];
	array[i]=t;
	}
}
int main(){
    
      
	int a[10],i;
	printf("请输入10个整数:\n");
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);
	sort(a,10);
	printf("由大到小顺序为:\n");
	for(i=0;i<10;i++)
		printf("%3d",a[i]);
	return 0;
}

在这里插入图片描述