大家好,我是小生,我来为大家解答以上问题。简单选择排序递归算法,简单选择排序很多人还不知道,现在让我们一起来看看吧!
1、在冒泡排序的基础上稍加了修改,感觉很简单,相关的注释和说明参看我写在你的冒泡排序问题中的内容。
2、程序代码如下,仅供参考:
3、# include "stdio.h"
4、# include "time.h"
5、# include "stdlib.h"
6、# define N 400
7、void init(int a[],int n){
8、 int i;
9、 srand ( ( unsigned int ) time ( NULL ) );
10、 for(i=0;i<n;i++)
11、 //scanf("%d",&a[i]);
12、 a[i]=rand()%100001;
13、}
14、void selectsort(int a[],int n){//最简单的选择排序
15、 int i,j,k=1,m,num,min;
16、 for(i=0;i<n-1;i++){
17、 min=i;
18、 for(j=i+1;j<n;j++)//每次找出一个最小的值放到合适的位置
19、 if(a[min]>a[j])
20、 min=j;
21、 num=a[i];
22、 a[i]=a[min];
23、 a[min]=num;
24、 printf("(");
25、 printf("%c",32);
26、 for(m=0;m<n;m++){
27、 printf("%d",a[m]);
28、 if(m==k-1){
29、 printf("%c",32);
30、 printf(")");
31、 printf("%c",32);
32、 }
33、 else
34、 printf("%c%c",32,32);
35、 }
36、 k++;
37、 printf(" ");
38、 }
39、}
40、void myprint(int a[],int n){
41、 printf("(");
42、 for(int i=0;i<n;i++){
43、 printf("%c%c",32,32);
44、 printf("%d",a[i]);
45、 }
46、 printf("%c%c)",32,32);
47、}
48、void main(){
49、 int n;
50、 int a[N];
51、 printf("请输入要排序的数组的大小:");
52、 scanf("%d",&n);
53、 init(a,n);
54、 printf("source: ");
55、 myprint(a,n);
56、 printf(" Bubble Sort: ");
57、 selectsort(a,n);
58、 printf(" Result: ");
59、 myprint(a,n);
60、 printf(" ");
61、}
62、呵呵,程序不难,归并的我就不写了,如果你对二路归并思路清晰的话,自己稍微改改就可以了吧!
本文到此讲解完毕了,希望对大家有帮助。