基础算法

来源:互联网 发布:淘宝店铺排名优化 编辑:程序博客网 时间:2024/05/16 17:42

冒泡排序

#include<stdio.h>#define MAX 50typedef int KeyType;typedef char InfoType;typedef struct{KeyType key;InfoType otheritems;}RecType;typedef RecType SeqRecList[MAX];void BubbleSort_up(SeqRecList R,int n){int i,j;int flag=1;RecType temp;for(i=1;i<=n&&1==flag;i++){flag=0;for(j=n-1;j>=i;j--){if(R[j+1].key<R[j].key){temp=R[j+1];R[j+1]=R[j];R[j]=temp;flag=1;}}}}int main(){int i;SeqRecList q;for(i=0;i<MAX;i++){q[i].key=MAX-i;q[i].otheritems='b'+i;}//BubbleSort_up(q,MAX-1);for(i=0;i<MAX;i++){printf("%d\n",q[i].key);}printf("hello\n");return 0;}
可以运行的冒泡排序,呵呵,自己照书上写的哦


下面把向下沉冒泡排序代码贴下

void BubbleSort_Down(SeqRecList R,int n){int i,j;int flag=1;RecType temp;for(i=n;i>=1&&1==flag;i--){flag=0;for(j=1;j<=i-1;j++){if(R[j+1].key<R[j].key){temp=R[j+1];R[j+1]=R[j];R[j]=temp;flag=1;}}}}

快速排序算法如下

#include<stdio.h>#define MAX 50typedef int KeyType;typedef char InfoType;typedef struct{KeyType key;InfoType otheritems;}RecType;typedef RecType SeqRecList[MAX];int Partition(SeqRecList R,int low,int high){RecType pivot;pivot=R[low];while(low<high){while(low<high&&R[high].key>=pivot.key)high--;if(low<high){R[low]=R[high];low++;}while(low<high&&R[low].key<pivot.key)low++;if(low<high){R[high]=R[low];high--;}}R[low]=pivot;return low;}void QuickSort(SeqRecList R,int low,int high){int i;if(low<high){i=Partition(R,low,high);QuickSort(R,low,i-1);QuickSort(R,i+1,high);}}int main(){int i;SeqRecList q;for(i=0;i<MAX;i++){q[i].key=MAX-i;q[i].otheritems='b'+i;}QuickSort(q,0,49);for(i=0;i<MAX;i++){printf("%d\n",q[i].key);}return 0;}
本人亲自测试通过

下面贴下百度的c++的快速排序算法

#include <iostream>#include <cstdlib> // srand() 以及 rand()#include <ctime> // time()using namespace std;int partion(int a[],int p,int r){    //rand    srand((unsigned)time( NULL));    int e=rand()%(r-p+1)+p;    int tem;    tem=a[e];    a[e]=a[r];    a[r]=tem;    int x=a[r], i=p-1;    for (int j=p;j<r;j++){        if (a[j]<=x){            tem=a[i+1];            a[i+1]=a[j];            a[j]=tem;            i++;        }    }    tem=a[r];    a[r]=a[i+1];    a[i+1]=tem;    return i+1;}void QuickSort(int a[],int p,int r){    if (p<r){        int q=partion(a,p,r);        QuickSort(a,p,q-1);        QuickSort(a,q+1,r);    }}int main(){    int array[]={0,-2,11,-4,13,-5,14,-43};    QuickSort(array,0,7);    for(int i=0;i<=7;i++)        cout<<array[i]<<" ";    cout<<endl;    return 0; }


原创粉丝点击