c++中的三种排序,比较基础,因为作为一个编程员总要会几种排序方法

来源:互联网 发布:彩票预测软件下载 编辑:程序博客网 时间:2024/05/25 01:35
我可能自己写的不是很清楚,如果写的不是很好或者不对的方面可以指出,毕竟自己也是个初学者,批评也是一个学习过程嘛 
//最简单的排序法#include"stdafx.h"#include<iostream>using namespace std;void sort(int [],int);void sort(int p[],int n){int temp;for(int i=0;i<n;i++){for(int j=0;j<n-1-i;j++){if(p[j]>p[j+1]){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}int main(){int a[]={5,3,1,4,2};sort(a,5);for(int i=0;i<5;i++){cout<<a[i]<<"\t";}system("pause");return 0;}//冒泡法#include"stdafx.h"#include<iostream>using namespace std;void bubblingsort(int [],int);void bubblingsort(int a[],int n){int temp;for(int i=0;i<n;i++){for(int j=n-1;j>i;j--){if(a[j]<a[j-1]){temp=a[j-1];a[j-1]=a[j];a[j]=temp;}}}}int main(){int a[]={7,2,3,4,1,5,6};bubblingsort(a,7);for(int i=0;i<7;i++){cout<<a[i]<<" ";}system("pause");return 0;}*///快速排序法(二分发排序)#include"stdafx.h"#include<iostream>using namespace std;void quicksort(int [],int);void run(int [],int,int);void quicksort(int a[],int n){run(a,0,n-1);}void run(int a[],int left,int right){int i,j,middle,temp;i=left;j=right;middle=a[(i+j)/2];do{while((a[i]<middle)&&i<right)i++;while((a[j]>middle)&&(j>left))j--;if(i<=j){temp=a[i];a[i]=a[j];a[j]=temp;i++;j--;}}while(i<=j);if(left<j)run(a,left,j);if(right>i)run(a,i,right);}int main(){int a[]={3,1,4,2,7,6,5};quicksort(a,7);for(int i=0;i<7;i++){cout<<a[i]<<" ";}system("pause");return 0;}
这次就放上最后一种方法的排序结果,
0 0
原创粉丝点击