今天計劃整理一下常見的幾種排序算法
冒泡法:
第p次冒泡,會在剩下的n-p個數字鐘找到最小的min值,將其放在剩下的n-p個數字的最前面。
我的方法是找剩下中的最小值放到開頭,而不是兩個相鄰值互相交換
代碼如下:
template<typename comparable>void maopaosort(vector<comparable>& a){    comparab tmp;    int pos;    for(int i=0;i<a.size()-1;i++)    {           tmp=a[i];        pos=i;        for(int j=i+1;j<a.szie();j++)        {               if(a[j]<tmp)            {                tmp=a[j];                pos=j;              }           }        a[i]=a[pos];        a[pos]=tmp;        }}標準的冒泡算法如下:
void bubble_sort(int a[], int n){    int i, j, temp;    for (j = 0; j < n - 1; j++)        for (i = 0; i < n - 1 - j; i++)        {            if(a[i] > a[i + 1])            {                temp = a[i];                a[i] = a[i + 1];                a[i + 1] = temp;            }        }}
新聞熱點
疑難解答