随笔分类 -  排序

杭电 2023 求平均成绩
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>int n,m,set[60][10];double avesc[10],avest[60];int main(){ double sum1,sum2; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) { sum1=0; for(int j=1;j<=m;j++) { scanf("%d",&set[i][j]); 阅读全文
posted @ 2011-08-09 20:41 枫叶飘泪 阅读(565) 评论(0) 推荐(0)
杭电 1425 sort
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>int n,m;int set[1000010]={0};int cmp(const void *a,const void *b){ return *(int *)b - *(int *)a;}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d",&set[i]); } qsor 阅读全文
posted @ 2011-08-09 19:01 枫叶飘泪 阅读(266) 评论(0) 推荐(0)
杭电 2020 绝对值排序
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>int n;int set[110]={0},a[110]={0},b[110]={0};int cmp(const void *a,const void *b){ return *(int *)b-*(int *)a;}int main(){ while(scanf("%d",&n),n) { for(int i=1;i<=n;i++) { scanf("%d&qu 阅读全文
posted @ 2011-08-09 18:50 枫叶飘泪 阅读(297) 评论(0) 推荐(0)
冒泡排序
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>int n,set[110];void Bu_sort(){ int swap; for(int i=1;i<=n;i++)//进行n趟排序 { swap=0; for(int j=1;j<=n-i;j++)//每趟交换n-i次 { if(set[j]>set[j+1]) { set[j]=set[j+1]^set[j]; set[j+1]=set[j+1]^set[j]; set[j]=set[j+1]^set[j]; swap=1; 阅读全文
posted @ 2011-08-09 11:35 枫叶飘泪 阅读(171) 评论(0) 推荐(0)
插入排序(直接插入排序)
摘要:#include<stdio.h>#include<string.h>#include<stdlib.h>int n,a[110];void d_insertsort(){ for(int i=2;i<=n;i++) { if(a[i]<a[i-1]) { a[0]=a[i]; int j; for(j=i-1;a[0]<a[j];j--) { a[j+1]=a[j]; } a[j+1]=a[0];//刚开始将a[j]=a[0],结果错了,后面才发现有问题。 } }}int main(){ while(scanf("%d" 阅读全文
posted @ 2011-08-08 17:36 枫叶飘泪 阅读(193) 评论(0) 推荐(0)
qsort和sort的区别(快速排序)
摘要:qsort和sort的区别First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。函数对buf 指向的数据按升序排序。使用方法:void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )int compare (const void *elem1, const void *elem2 阅读全文
posted @ 2011-05-20 22:05 枫叶飘泪 阅读(14405) 评论(0) 推荐(0)