v 0. Pasted by slipstak2 as cpp at 2011-10-31 20:56:42 MSK and set expiration to never.

Paste will expire never.

  1. // Очно-заочный кружок
  2. // Занятие №9. Учебные задачи
  3. // Задача B. Тестирование сортировки
  4. // ibelyaev: 29Oct2011
  5. // http://cppalgo.blogspot.com/2011/04/blog-post.htm
  6.  
  7. #include <iostream>
  8. #include <vector>
  9. #include <algorithm>
  10. #include <time.h>
  11. using namespace std;
  12.  
  13. const int MAX_SIZE = 1000;
  14. const int MAX_VAL = 1e4;
  15. const int MIN_VAL = -MAX_VAL;
  16.  
  17. const int MIN_POS = 8000;
  18. const int MAX_POS = 8100;
  19.  
  20. const int MIN_NEG = -7777;
  21. const int MAX_NEG = -7766;
  22.  
  23.  
  24. vector<int> mas;
  25. void output(vector<int> &mas) {
  26.     cout<<mas.size()<<' ';
  27.     for (int i=0;i<mas.size();++i)
  28.         cout<<mas[i]<<' ';
  29.     cout<<endl;
  30. }
  31. void random_nomax() {
  32.     vector<int>mas(rand()%MAX_SIZE + 10);
  33.     for (int i=0;i<mas.size();i++) {
  34.         if (i == 0)
  35.             mas[i] = MIN_VAL;
  36.         else if (i % 7 == 0)
  37.             mas[i] = 0;
  38.         else if (i == mas.size() / 2)
  39.             mas[i] = MAX_VAL;
  40.         else
  41.             mas[i] = MIN_VAL +  rand() % (2 * MAX_VAL) + 1;
  42.     }
  43.  
  44.     output(mas);
  45. }
  46. void random_max() {
  47.     vector<int>mas(MAX_SIZE);
  48.     for (int i=0;i<mas.size();i++) {
  49.         if (i == 0)
  50.             mas[i] = MIN_VAL;
  51.         else if (i % 7 == 0)
  52.             mas[i] = 0;
  53.         else if (i == mas.size() / 2)
  54.             mas[i] = MAX_VAL;
  55.         else
  56.             mas[i] = MIN_VAL +  rand() % (2 * MAX_VAL) + 1;
  57.     }
  58.  
  59.     output(mas);
  60. }
  61. void sort() {
  62.     vector<int> mas(MAX_SIZE%(rand() + 10));
  63.     int num = -(mas.size() - rand()% mas.size() - 5);
  64.     for (int i=0;i<mas.size();++i)
  65.         mas[i] = num++;
  66.     output(mas);
  67. }
  68. void reverse() {
  69.     vector<int>mas(MAX_SIZE);
  70.     for (int i=0;i<mas.size();++i)
  71.         mas[i] = MIN_VAL +  rand() % (2 * MAX_VAL) + 1;
  72.     sort(mas.rbegin(), mas.rend());
  73.     output(mas);
  74. }
  75. void one_neg_element() {
  76.     vector<int> mas(1);
  77.     mas[0] = -1;
  78.     output(mas);
  79. }
  80. void two_elements() {
  81.     vector<int> mas(2);
  82.     mas[0] = MIN_POS + rand() % (MAX_POS - MIN_POS) + 1;
  83.     mas[1] = MIN_NEG + rand() % (MAX_NEG - MIN_NEG) + 1;
  84.     output(mas);
  85. }
  86. void heap() {
  87.     vector<int> mas(rand() % MAX_SIZE + 10);
  88.     for (int i=0;i<mas.size();++i)
  89.         mas[i] = MIN_VAL +  rand() % (2 * MAX_VAL) + 1;
  90.     make_heap(mas.begin(), mas.end());
  91.  
  92.     output(mas);
  93. }
  94. void same_pos_neg_elements() {
  95.     vector<int> mas(100);
  96.     for (int i=0;i<mas.size();i++)
  97.         mas[i] = -10 + rand() % 20;
  98.     output(mas);
  99. }
  100.  
  101. void same_pos_elements() {
  102.     vector<int> mas(100);
  103.     for (int i=0;i<mas.size();i++)
  104.         mas[i] = 0 + rand() % 10;
  105.     output(mas);
  106. }
  107.  
  108.  
  109. void same_neg_elements() {
  110.     vector<int> mas(100);
  111.     for (int i=0;i<mas.size();i++)
  112.         mas[i] = -10 + rand() % 10;
  113.     output(mas);
  114. }
  115. int main() {
  116.     freopen("output.txt","w",stdout);
  117.     srand(time(NULL));
  118.    
  119.     cout<<10<<endl;
  120.  
  121.     random_nomax();
  122.     random_max();
  123.     sort();
  124.     reverse();
  125.     one_neg_element();
  126.     two_elements();
  127.     heap();
  128.     same_pos_neg_elements();
  129.     same_pos_elements();
  130.     same_neg_elements();
  131.  
  132.     return 0;
  133. }


Editing is locked.