#include <iostream>

#include <stdlib.h>

#include <algorithm>

#include <set>

#define LEN 20

//Pop sort

void sort_pop(int *array, int n)
{
     for(int i = 0; i < n - 1; ++i)
     {
          bool bBreak = true;
          for(int j = n - 2; j >= i ; --j)
          //for(int j = 0; j < n - i; ++j)

               if (array[j] < array[j + 1])
               {
                    std::swap(array[j], array[j + 1]);
                    bBreak = false;
               }
          if (bBreak)
               break;
     }
}

int main()
{
     int array[LEN];
     for(int i = 0; i < LEN; ++i)
          array[i] = rand() % LEN;
     std::cout << "Before sort:\t";
     for(int i = 0; i < LEN; ++i)
          std::cout << array[i] << " ";
     std::cout << "\n";
     sort_pop(array, LEN);
     std::cout << "After sort:\t";
     for(int i = 0; i < LEN; ++i)
          std::cout << array[i] << " ";
     std::cout << "\n";
}

[原文在百度空间已经关闭]