/**
* 名称: 递归的选择排序
* 作者: mz21g
* 日期: 2019.8.39
* */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY 10 //生成多大的数组
#define RANGE 100 //数组的元素大小从1到RAGNE
int A[ARRAY];
void recSS(int A[], int i, int n){
int j, small, temp;
if (i < n-1){
small = i;
for (j = i+1; j < n; j++){
// 每一趟选择最小元素放到前边来
if(A[j] < A[small])
small = j;
}
temp = A[small];
A[small] = A[i];
A[i] = temp;
// 排序剩下的元素
recSS(A, i+1, n);
}
}
int main(){
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (int i = 0; i < ARRAY; i++)
{
int number = rand() % RANGE + 1; //产生1-RANGE的随机数
A[i] = number;
}
printf("排序前: \n");
for (int i = 0; i < ARRAY; i++){
printf("%d ", A[i]);
}
printf("\n");
recSS(A, 0, ARRAY);
printf("排序后: \n");
for (int i = 0; i < ARRAY; i++){
printf("%d ", A[i]);
}
printf("\n");
return 0;
}
递归的选择排序(C语言)
最新推荐文章于 2023-11-27 21:54:24 发布