#include <stdio.h>
//递归选择排序
//交换算法
void swap(int arr[],int i,int j)
{
if(i == j) return;
arr[i] ^=arr[j];
arr[j] ^=arr[i];
arr[i] ^=arr[j];
}
//寻找最大元素下标
int fin_maxi(int arr[],int len)
{
int maxi = 0;
for(int i = 1;i < len; i++)
{
if(arr[i] > arr[maxi])
{
maxi = i;
}
}
return maxi;
}
//递归方式
void selectionSort(int arr[],int len)
{
if(len < 2) return;
int max = fin_maxi(arr,len);
swap(arr,max,len-1);
selectionSort(arr, len-1);
}
void show_arr(int arr[],int len)
{
for(int i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
}
int main()
{
int arr[5]={1,0,2,5,7};
//fin_maxi(arr,5);
selectionSort(arr,5);
show_arr(arr,5);
return 0;
}