C语言基础_排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言基础_排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2519字,纯文字阅读大概需要4分钟。
内容图文
一、C语言基础
1)冒泡排序
int array[10] = {1,6,3,4,5,7,7,8,9,10}; for (int j = 0; j < 9; j++) { for (int i=0; i<9-i; i++) { if (array[i] > array[i+1]) { array[i] = array[i] ^ array[i+1]; array[i+1] = array[i] ^ array[i+1]; array[i] = array[i] ^ array[i+1]; } } } printf("排序后的10个数为:\n"); for (int i = 0; i < 10; i++) { printf("%d\t",array[i]); }
2)快速排序
void bubbleSort(int n, int a[]) { int i,j,t; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } return ; } void selectSort(int n,int a[]) { int i,j,min,t; for (i=0; i<n; i++) { min = i; for(j=i+1;j<n;j++) { if(a[min] > a[j]) min = j; } if(min!=i) { t=a[min]; a[min]=a[i]; a[i]=t; } } return; } void quickSort(int l,int r,int a[]) { if(l>r) return; int i,j,key;//i存上界,j存下界,key关键数据; i=l; j=r; key=a[l]; while(i<j) { while (key < a[j]) { if(i==j) break; j--; } if(i!=j) { a[i]=a[j]; i++; } while (key>a[i]) { if(i==j) break; i++; } if(i!=j) { a[j]=a[i]; j--; } } a[i]=key; quickSort(l, i-1, a); quickSort(i+1, r, a); } int main(int argc, constchar * argv[]) { int a[100000],i,n=100000; for(i=0;i<n;i++) a[i]=arc4random()%100; printf("待排数组:"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); unsigned long finish,start; double duration; start = clock(); quickSort(0, n-1, a); //bubbleSort(n, a); selectSort(n, a); finish = clock(); duration = ((double)finish-start)/CLOCKS_PER_SEC; printf("%lf second\n",duration); printf("结果数组:"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return0; }
3) 冒泡排序
int a[5] ={1,2,3,4,6}; BOOL flag = YES; for (int i =0;i<9; i++) { for (int j=0; j<9-i; j++) { if (a[j] > a[j+1]) { int temp = 0; temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; flag = NO; } } if (flag == YES) { break; } } for (int i=0; i<5; i++) { printf("%d ",a[i]); } }
4)字符串倒转
char arr[]={}; printf("请输入一个字符串:\n"); scanf("%s",arr); int len = (int) strlen(arr); for (int i=0; i<len/2; i++) { char temp; temp = arr[i]; arr[i] = arr[len - 1 -i]; arr[len - 1 -i] = temp; } printf("倒转之后字符串为%s",arr);
5)输出直角三角形
for(int i=0;i<3;i++){ for(int j=i;j>=0;j--){ printf("* "); } printf("\n"); }
6)字符串排序
char arr[3][20] = {"liuweijian","hanhong","huzhichao"}; char temp[20]; for (int i = 0; i < 2 ; i++) { for (int j = 0; j < 2 - i; i++) { if (strcmp(arr[j],arr[j+1]) > 0) { strcpy(temp,arr[j]); strcpy(arr[j],arr[j+1]); strcpy(arr[j+1],temp); } } } for (int i = 0; i < 3; i++) { printf("%s\n",arr[i]); }
原文:http://www.cnblogs.com/ChinaTiger/p/4703154.html
内容总结
以上是互联网集市为您收集整理的C语言基础_排序全部内容,希望文章能够帮你解决C语言基础_排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。