对数组进行排序(快速排序或归并排序二选一)
1)快速排序:定义一个数组,使用快速排序算法将其中的元素按照从小到大的顺序进行排序。
算法输出:排好序的数组
2)归并排序:定义一个数组,使用快速排序算法将其中的元素按照从小到大的顺序进行排序。
算法输出:排好序的数组
#include<stdio.h> char c[100010]; void merge_sort(char a[],int l,int r) { if(l>=r)return; int mid=(l+r)>>1; merge_sort(a,l,mid); merge_sort(a,mid+1,r); int i=l,j=mid+1,k=0; while(i<=mid&&j<=r) { if(a[i]<a[j])c[k++]=a[i++]; else c[k++]=a[j++]; } while(i<=mid)c[k++]=a[i++]; while(j<=r)c[k++]=a[j++]; for(i=l,j=0;j<k;i++,j++) { a[i]=c[j]; } return; } int main(void) { int n; char a[100000]; scanf("%s",a); for(int i=1;a[i-1]!='\0';i++,n++) ; merge_sort(a,0,n-1);
puts(a); return 0; } |
代码有部分参考,仅为作业学习使用