|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最大的那个排不进。。
- #include <stdio.h>
- void swap(int *x,int *y)
- {
- int tmp=*x;
- *x=*y;
- *y=tmp;
- }
- void disp(int a[],int n)
- {
- int i;
- for(i=0;i<n;i++)
- {
- printf("%4d",a[i]);
- }
- }
- void SelectSort(int a[],int n,int i)
- {
- int j,k;
- if(i==n-1)
- {
- return;
- }
- else
- {
- k=i;
- for(j=i+1;j<n;j++)
- {
- if(a[k]>a[j])
- {
- k=j;
- }
- if(k!=i)
- {
- swap(&a[i],&a[j]);
- SelectSort(a,n,i+1);
- }
- }
- }
- }
- int main(void) {
-
- int n=10;
- int a[]={2,4,1,5,7,8,3,9,10,6};
- printf("排序前:");
- disp(a,n);
- putchar('\n');
- SelectSort(a,n,0);
- printf("排序后:");
- disp(a,n);
-
- return 0;
- }
复制代码
一个小错误
- #include <stdio.h>
- void swap(int *x,int *y)
- {
- int tmp=*x;
- *x=*y;
- *y=tmp;
- }
- void disp(int a[],int n)
- {
- int i;
- for(i=0;i<n;i++)
- {
- printf("%4d",a[i]);
- }
- }
- void SelectSort(int a[],int n,int i)
- {
- int j,k;
- if(i==n-1)
- {
- return;
- }
- else
- {
- // k=i;
- for(j=i+1;j<n;j++)
- {
- k = i; // 要定义在循环里
- if(a[k]>a[j])
- {
- k=j;
- }
- if(k!=i)
- {
- swap(&a[i],&a[j]);
- SelectSort(a,n,i+1);
- }
- }
- }
- }
- int main(void) {
-
- int n=10;
- int a[]={2,4,1,5,7,8,3,9,10,6};
- printf("排序前:");
- disp(a,n);
- putchar('\n');
- SelectSort(a,n,0);
- printf("排序后:");
- disp(a,n);
-
- return 0;
- }
复制代码
|
-
|