Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
#1

Cортировка массива - C++

28.11.2011, 22:48. Просмотров 675. Ответов 12
Метки нет (Все метки)

Здравствуйте! Существует задание:
Дан массив n действительных чисел. Если исходный массив имеет равное количество положительных и отрицательных чисел, создать новый массив, упорядочив исходный массив следующим образом. Первыми идут два максимальных элемента, затем два минимальных; далее два максимальных и два минимальных из оставшихся и т.д..
Преподаватель сказал, что исходный массив трогать запрещает, работать можно только с новым.
Я перенес значения из 1 массива в новый, отсортировал его по убыванию.
Дальше сколько я ни мучаюсь, вывести алгоритм сортировки не выходит никак.
Подскажите пожалуйста этот самый алгоритм.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 22:48     Cортировка массива
Посмотрите здесь:

ортировка массива студентов по возрасту - C (СИ)
Привет всем, в общем такой вопрос, вот у меня структура студент, проходим динамические структуры.. Я сделал программу, но не могу...

Для массива x(n) определить значение максимального эллемента массива и поменять его с первым элементом массива - Pascal ABC
Для массива x(n) определить значение максимального эллемента массива и поменять его с первым элементом массива

инициализация массива, вывод массива и обработка массива должны быть реализованы с помощью функций. - Visual C++
1 Последовательность a1; a2; ...; an состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы. 2 У...

Два исходных массива объединить в один, включив элементы второго массива между K и (K+1) элементами первого массива. - Pascal
Ребят, помогите, пожалуйста, сделать задачи, так как сама в этом ничего не соображаю.. 1. Дан массив из 20 элементов целого типа,...

Определить количество положительных элементов массива. Элементы массива задаются датчиком случайных чисел (размерность массива произвольна) - Turbo Pascal
Определить количество положительных элементов массива. Элементы массива задаются датчиком случайных чисел (размерность массива произвольна)

Из 1-го массива выбирать единицы, из 2-го массива двойки, из 3-го массива тройки, и заносить их в 4-ый массив - Lazarus
Добрый вечер, необходима чья-либо помощь. Нужно написать программку, которая будет из 1-го массива выбирать единицы, из 2-го массива...

Для каждого массива в диалоге ввести размер массива и элементы массива и найти сумму и среднее арифметическое значение для каждого массива - Turbo Pascal
даны 3 различных массива целых чисел(размер каждого не должен превышать 15). Для каждого массива в диалоге ввести размер массива и элементы...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
28.11.2011, 23:55     Cортировка массива #2
Есть у меня одна идея. Если массив упорядочен, например так
8 8 7 6 5 5 4 4 3 3 2 1
то можно менять местами элементы по четвёркам , например запомнить элементы a[i] и a[i+1] во вспомогательных переменных r1 и r2, потом записать на их месте элементы a[i+2] a[i+3], и потом записать переменные a[i] a[i+1] в конец, делать всё это в цикле for c шагом в 4. Сейчас попробую написать кусочек программы

Добавлено через 21 минуту
Хотя нет, немного не тот случай.
Если массив не упорядочен, например так 8 9 5 9 4 7 8 1, то можно
проверять массив с конца, и затем поменять местами предпредпоследний и предпоследний 7 и 8, потом предпоследний и последний 7 и 1, потом изменить переключатель с минус единицы на единицу и потом переставлять элементы снова, только уже минимальные. Сейчас попробую написать кусочек программы

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for(j=n-1; j>0; j-=2)
{
   if(flag==1)
     {
         if(a[j-1] > a[j-2] ) 
            меняем местами
         if(a[j] > a[j-1] ) 
            меняем местами
         if(a[j-1] > a[j-2] ) 
            меняем местами
     }
   else
     {
         if(a[j-1] < a[j-2] ) 
            меняем местами
         if(a[j] < a[j-1] ) 
            меняем местами
         if(a[j-1] < a[j-2] ) 
            меняем местами
     }
 
    flag*= (-1);
}
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 09:55  [ТС]     Cортировка массива #3
alenka-46, к сожалению, работает неправильно.
Я все-таки считал что после сортировке оно легче должно делаться то... Только не могу понять как.
shtefeek
5 / 5 / 0
Регистрация: 30.10.2010
Сообщений: 22
29.11.2011, 18:23     Cортировка массива #4
Сначала пытался сделать через поиск максимального и минимального - не удалось, ну вот решил попробывать такой метод, но предупреждаю работает криво.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{   int n;
    printf("Enter n - ");
    scanf("%d",&n);
    int a[n],s,b[n],swap,i,c=0,tmp,otr=0,pol=0,l,k;
    l=0;
    s=n;
    k=n/2;
    for (i=0;i<n;i++)
    {
        printf("a[%d]=",i);
        scanf("%d",&a[i]);
    }
    for (i=0;i<n;i++)
    {
        if(a[i]<0)
        otr++;
        if(a[i]>0)
        pol++;
    }
    if(otr==pol)
    {
                 do
      {
       swap=0;
              for (i=0;i<n-1;i++) 
             {
                 if (a[i]>a[i+1])
                 {
                                 tmp=a[i];      
                                 a[i]=a[i+1];   
                                 a[i+1]=tmp;    
                                 swap++;       
                    }
             }           
        
    }
    while(swap!=0);
    }
    else
    {
        printf("Error!\n");
        system("PAUSE");
    return EXIT_SUCCESS;
    }           
    printf("\n");
    while (k!=0)
    {
    b[c]=a[n-1];
    b[c+1]=a[n-2];
    b[c+2]=a[c];
    b[c+3]=a[c+1];
    c+=4;
    n-=2;
    k--;
    }
    for (i=0;i<s;i++)
    {
        printf("%d ",b[i]);
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
29.11.2011, 18:34     Cортировка массива #5
Попробуйте проверить такую программу, я её немножко доработала
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
void main()
{
   clrscr();
   int i, j, k,   // счётчики для циклов
       r,         // дополнительная переменная для перестановки элементов массива
       n,         // длина массива
       flag=-1; // переменная для смены минимума на максимум
 
// просим пользователя ввести размер массива
   cout <<"\n \n   Введите количество элементов массива : ";
   cin >> n;
 
// создаём динамический массив нужной длины 
   int *a=new int [n];
 
//просим пользователя ввести элементы массива
   for(i=0; i<n; i++)
   {
      cout <<"\n Введите " <<i+1 <<" элемент массива : ";
      cin >> a[i];
   }
 
   clrscr(); // очистка экрана
 
// печать начального массива   
   cout << "\n Начальный массив : ";
   for(i=0; i<n; i++)
      cout <<a[i] << " ";
 
// сам алгоритм перестановки  
   for(i=0; i<n-1; i+=2) // переставляем пару минимумов или максимумов в начало в цикле
  {
   if( flag == 1)                 //  если нужно переместить в начало максимумы 
   for( j = n-1; j > i+1; j--) // проверяем все элементы левее i до конца массива
   {
       if( a[j-1] > a[j-2] )    // сравниваем первый и второй элемент в тройке чисел
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
         if( a[j] > a[j-1] ) // сравниваем второй и третий элемент в тройке чисел
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=a[j];
         }
         if( a[j-1] > a[j-2] ) // снова сравниваем первый и второй элемент в тройке чисел,
         {                         // так как второй и третий могли быть переставлены
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
   }
   else                            // если нужно перенести в начало цикла пару минимумов,
   for( j = n-1; j > i+1; j--)// то делаем почти тоже самое (только в циклах if поменялся знак) 
  {
      if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
         if( a[j] < a[j-1] )
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=a[j];
         }
         if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         } 
   }
   // печатаем получившийся результат после одной перестановки
   cout << " \n  i= " <<i  <<" flag=" <<flag <<"\t  ";
   for(k=0; k<n; k++)
      cout <<a[k] <<" ";
 
   flag*=(-1); // меняем знак flag , чтобы потом вместо максимума искать минимум и наоборот
   }
 
// печатаем изменённый массив
   cout << "\n\n  Преобразованный массив: ";
   for(i=0; i<n; i++)
      cout <<" " <<a[i];
 
   cout <<"\n\n   Программа завершила свою работу нажмите <Enter>";
   getchar();
}
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 19:43  [ТС]     Cортировка массива #6
Цитата Сообщение от alenka-46 Посмотреть сообщение
Попробуйте проверить такую программу, я её немножко доработала
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
void main()
{
   clrscr();
   int i, j, k,   // счётчики для циклов
       r,         // дополнительная переменная для перестановки элементов массива
       n,         // длина массива
       flag=-1; // переменная для смены минимума на максимум
 
// просим пользователя ввести размер массива
   cout <<"\n \n   Введите количество элементов массива : ";
   cin >> n;
 
// создаём динамический массив нужной длины 
   int *a=new int [n];
 
//просим пользователя ввести элементы массива
   for(i=0; i<n; i++)
   {
      cout <<"\n Введите " <<i+1 <<" элемент массива : ";
      cin >> a[i];
   }
 
   clrscr(); // очистка экрана
 
// печать начального массива   
   cout << "\n Начальный массив : ";
   for(i=0; i<n; i++)
      cout <<a[i] << " ";
 
// сам алгоритм перестановки  
   for(i=0; i<n-1; i+=2) // переставляем пару минимумов или максимумов в начало в цикле
  {
   if( flag == 1)                 //  если нужно переместить в начало максимумы 
   for( j = n-1; j > i+1; j--) // проверяем все элементы левее i до конца массива
   {
       if( a[j-1] > a[j-2] )    // сравниваем первый и второй элемент в тройке чисел
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
         if( a[j] > a[j-1] ) // сравниваем второй и третий элемент в тройке чисел
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=a[j];
         }
         if( a[j-1] > a[j-2] ) // снова сравниваем первый и второй элемент в тройке чисел,
         {                         // так как второй и третий могли быть переставлены
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
   }
   else                            // если нужно перенести в начало цикла пару минимумов,
   for( j = n-1; j > i+1; j--)// то делаем почти тоже самое (только в циклах if поменялся знак) 
  {
      if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         }
         if( a[j] < a[j-1] )
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=a[j];
         }
         if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=a[j-1];
         } 
   }
   // печатаем получившийся результат после одной перестановки
   cout << " \n  i= " <<i  <<" flag=" <<flag <<"\t  ";
   for(k=0; k<n; k++)
      cout <<a[k] <<" ";
 
   flag*=(-1); // меняем знак flag , чтобы потом вместо максимума искать минимум и наоборот
   }
 
// печатаем изменённый массив
   cout << "\n\n  Преобразованный массив: ";
   for(i=0; i<n; i++)
      cout <<" " <<a[i];
 
   cout <<"\n\n   Программа завершила свою работу нажмите <Enter>";
   getchar();
}
Я, к сожалению, не очень вникал в Ваш код. Решил сначала проверить его работу.
По-моему ни на каких исходных данных он верно не работает. Прилагаю изображение консоли.

Ответьте пожалуйста, Вы сами-то его проверяли? На Ваших данных он работал?
Миниатюры
Cортировка массива  
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
29.11.2011, 20:31     Cортировка массива #7
В циклах if опечатка, нужно было приравнивать к переменной r
Миниатюры
Cортировка массива  
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
29.11.2011, 20:34     Cортировка массива #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
 
void main()
{
   clrscr();
   int i, j, k,   // счётчики для циклов
       r,         // дополнительная переменная для перестановки элементов массива
       n,         // длина массива
       flag=-1; // переменная для смены минимума на максимум
 
// просим пользователя ввести размер массива
   cout <<"\n \n   Введите количество элементов массива : ";
   cin >> n;
 
// создаём динамический массив нужной длины 
   int *a=new int [n];
 
//просим пользователя ввести элементы массива
   for(i=0; i<n; i++)
   {
      cout <<"\n Введите " <<i+1 <<" элемент массива : ";
      cin >> a[i];
   }
 
   clrscr(); // очистка экрана
 
// печать начального массива   
   cout << "\n Начальный массив : ";
   for(i=0; i<n; i++)
      cout <<a[i] << " ";
 
// сам алгоритм перестановки  
   for(i=0; i<n-1; i+=2) // переставляем пару минимумов или максимумов в начало в цикле
  {
   if( flag == 1)                 //  если нужно переместить в начало максимумы 
   for( j = n-1; j > i+1; j--) // проверяем все элементы левее i до конца массива
   {
       if( a[j-1] > a[j-2] )    // сравниваем первый и второй элемент в тройке чисел
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=r;
         }
         if( a[j] > a[j-1] ) // сравниваем второй и третий элемент в тройке чисел
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=r;
         }
         if( a[j-1] > a[j-2] ) // снова сравниваем первый и второй элемент в тройке чисел,
         {                         // так как второй и третий могли быть переставлены
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=r;
         }
   }
   else                            // если нужно перенести в начало цикла пару минимумов,
   for( j = n-1; j > i+1; j--)// то делаем почти тоже самое (только в циклах if поменялся знак) 
  {
      if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=r;
         }
         if( a[j] < a[j-1] )
         {
           r=a[j];
           a[j]=a[j-1];
           a[j-1]=r;
         }
         if( a[j-1] < a[j-2] )
         {
           r=a[j-1];
           a[j-1]=a[j-2];
           a[j-2]=r;
         } 
   }
   // печатаем получившийся результат после одной перестановки
   cout << " \n  i= " <<i  <<" flag=" <<flag <<"\t  ";
   for(k=0; k<n; k++)
      cout <<a[k] <<" ";
 
   flag*=(-1); // меняем знак flag , чтобы потом вместо максимума искать минимум и наоборот
   }
 
// печатаем изменённый массив
   cout << "\n\n  Преобразованный массив: ";
   for(i=0; i<n; i++)
      cout <<" " <<a[i];
 
   cout <<"\n\n   Программа завершила свою работу нажмите <Enter>";
   getchar();
}
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 20:43  [ТС]     Cортировка массива #9
В 11 строке я полагаю, флаг равен -1?

Добавлено через 29 секунд
То есть он должен быть равен 1.
alenka-46
16 / 16 / 2
Регистрация: 28.04.2011
Сообщений: 38
29.11.2011, 20:43     Cортировка массива #10
Можно поставить 1 - тогда первым выводится максимум, или -1 - тогда первым выводится минимум
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 20:46  [ТС]     Cортировка массива #11
Действительно работает, с инициализацией flag единицей. Спасибо за труды!
shtefeek
5 / 5 / 0
Регистрация: 30.10.2010
Сообщений: 22
29.11.2011, 21:06     Cортировка массива #12
Зачем делать так сложно?
Или я не правильно понял суть задачи?
Миниатюры
Cортировка массива  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 21:18     Cортировка массива
Еще ссылки по теме:

Заданы два массива. Проверить, что максимальный элемент массива A больше максимального элемента массива B - Delphi
Заданы два массива: A={a1, a2, a3, a4}, B={b1, b2…..b6}. Переменной S присвоить значение –1, если максимальный элемент массива A больше...

Дано 2 массива по 20.Наибольший элемент первого массива, заменить наименьшим элементом второго массива - Java SE
Дано 2 массива по 20.Наибольший элемент первого массива, заменить наименьшим элементом второго массива. Кто сможет решить заранее...

Из массива размером 10, сформировать два массива размера 5, включая в первый массив четные элементы исх. массива, а во второй - нечетные - C#
Из массива размером 10, сформировать два массива размера 5, включая в первый массив четные элементы исх. массива, а во второй - нечетные

Создать два массива. Вычислить количество тех элементов каждого массива, для которых выполняется неравенство: 2<элемент массива<10 - C++
помогите,пожалуйста! есть вот такие задания...ОЧЕНЬ надо на завтра... Задача 4. Определить два одномерных массива А(19) и В(16);...

Описать функцию, которая находит максимальный элемент массива, из всех парных элементов массива, и использовать ее для некоторого заданного массива - PHP
Помогите зделать программы на РНР, буду очень благодарным. 1.Описать функцию, которая находит максимальный элемент массива, из всех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ProRocker
1 / 1 / 0
Регистрация: 20.03.2011
Сообщений: 12
29.11.2011, 21:18  [ТС]     Cортировка массива #13
Цитата Сообщение от shtefeek Посмотреть сообщение
Зачем делать так сложно?
Или я не правильно понял суть задачи?
Правильно понял, сделано очень толсто.
Я сделал путем создания нового массива, посчитал что так меньше всего затрат ресурсов.
А твой вариант я скомпилировать не смог, т.к. работаю в консоли используя cin и cout с отладчиком Visual Studio, не знаком с тем синтаксисом, который ты тут используешь.

Добавлено через 37 секунд
И количество членов в массиве, как я понимаю, должно быть кратно 4.

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int massl(int n, float* mass, float* newMass)
{
        int answ;
        answ= analyze(n,mass);
        if (answ==0) return 0;
        else
        {
        int i,j;
        float vMass[100];
 
        for (i=0;i<n;i++) 
        {
            newMass[i]=mass[i];
            vMass[i]=mass[i];
        }
        for (i=0;i<n;i++)
            {
                for (j=0;j<n;j++)
                {
                    if (vMass[i]>=vMass[j]) swap(vMass[i],vMass[j]);    
                }
            }
 
    for (i=0;i<n-3;i+=2)
        {
            newMass[i+i]=vMass[i];
            newMass[i+i+1]=vMass[i+1];
            newMass[i+i+2]=vMass[n-i-1];
            newMass[i+i+3]=vMass[n-i-2];
        }
        
        return 1;
    }
}
shtefeek как я вижу тоже использовал 2 массива.
Я думаю, что использую их экономней.

Функция с динамическим распределением памяти:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
float* massl(int n, float* mass, int& tr)
{
        int answ;
        
        answ = analyze(n,mass);
 
        if (answ==0) 
        {
            tr=0;
            return 0;
        }
        else
        {
        float* newMass;
        float* vMass;
        newMass= new float [n];
        vMass= new float [n];
        int i,j;
 
        for (i=0;i<n;i++) 
        {
            newMass[i]=mass[i];
            vMass[i]=mass[i];
        }
        for (i=0;i<n;i++)
            {
                for (j=0;j<n;j++)
                {
                    if (vMass[i]>=vMass[j]) swap(vMass[i],vMass[j]);    
                }
            }
 
        for (i=0;i<n-3;i+=2)
        {
            newMass[i+i]=vMass[i];
            newMass[i+i+1]=vMass[i+1];
            newMass[i+i+2]=vMass[n-i-1];
            newMass[i+i+3]=vMass[n-i-2];
        }
        tr=1;
        return newMass;
        }
}
Yandex
Объявления
29.11.2011, 21:18     Cортировка массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru
X vBulletin 3.8.9 Debug Information
  • Page Generation 0.30637 seconds
  • Memory Usage 14,251KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_forum_allpages_top
  • (1)ad_forum_description_below
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_afterqr
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (13)awards_postbit_display_style3
  • (2)bbcode_quote
  • (1)blog_navbar_link
  • (1)blog_navbar_link_menu
  • (1)blog_navbar_search
  • (1)footer
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)krtsts_footer
  • (1)krtsts_headinclude
  • (1)krtsts_navbar_link
  • (1)krtsts_navbar_menu
  • (2)navbar
  • (4)navbar_link
  • (1)option
  • (1)pdp_checkbox
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (13)post_thanks_postbit_info
  • (3)postbit_attachmentthumbnail
  • (13)postbit_legacy
  • (13)postbit_onlinestatus
  • (13)postbit_reputation
  • (13)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper
  • (1)vbfavorites_postbit 

Phrase Groups Available:
  • global
  • inlinemod
  • modpm_text
  • modpm_title
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./vbseo.php
  • ./vbseo/includes/functions_vbseo.php
  • ./vbseo/includes/functions_vbseo_pre.php
  • ./vbseo/includes/functions_vbseo_url.php
  • ./vbseo/includes/functions_vbseo_createurl.php
  • ./vbseo/includes/functions_vbseo_db.php
  • ./vbseo/includes/functions_vbseo_vb.php
  • ./vbseo/includes/functions_vbseo_seo.php
  • ./vbseo/includes/functions_vbseo_misc.php
  • ./vbseo/includes/functions_vbseo_crr.php
  • ./vbseo/includes/functions_vbseo_cache.php
  • ./vbseo/includes/functions_vbseo_hook.php
  • ./vbseo/includes/functions_vbseo_startup.php
  • ./includes/config.php
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/functions.php
  • ./includes/class_datastore.php
  • ./includes/class_hook.php
  • ./mgc_cb_evo/plugins/init_startup.php
  • ./hooks/post_thank_you/cache_templates.php
  • ./mgc_cb_evo/plugins/cache_templates.php
  • ./krscripts/tests/hooks/cache_templates.php
  • ./hooks/yet_another_award_system/cache_templates.php
  • ./hooks/vbfavorites/cache_templates.php
  • ./krscripts/krnewforumhome/cache_templates.php
  • ./mgc_cb_evo/plugins/global_start.php
  • ./mgc_cb_evo/classes/class_core.php
  • ./mgc_cb_evo/classes/class_permissions.php
  • ./hooks/debug_mode_from_admincp/global_start.php
  • ./krscripts/phdetect/hooks/phishing_detect.php
  • ./includes/functions_seo.php
  • ./includes/adminfunctions.php
  • ./hooks/one_touch_ban_spam_cleanup/global_start.php
  • ./krscripts/tests/hooks/global_start.php
  • ./krscripts/tests/includes/functions_tests.php
  • ./hooks/vbfavorites/global_start.php
  • ./krscripts/ttstyle/includes/functions_ttstyle.php
  • ./krscripts/stierlitz/hooks/global_start.php
  • ./krscripts/bestanswer/includes/functions_bestanswer.php
  • ./mgc_cb_evo/plugins/parse_templates.php
  • ./hooks/cyb_sub_forum_manager/parse_templates.php
  • ./hooks/display_unread_posts_and_reputation_comments/parse_templates.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./geshi/geshi.php
  • ./includes/functions_reputation.php
  • ./hooks/threads_notifications/showthread_start.php
  • ./krscripts/bestanswer/hooks/showthread_start.php
  • ./hooks/prevent_doubleposts_mdm/showthread_getinfo.php
  • ./hooks/first_post_on_all_pages/showthread_query.php
  • ./hooks/vbfavorites/showthread_postbit_create.php
  • ./includes/adminfunctions_template.php
  • ./includes/functions_misc.php
  • ./includes/functions_post_thanks.php
  • ./mgc_cb_evo/plugins/postbit_display_complete.php
  • ./krscripts/tests/hooks/postbit_display_complete.php
  • ./geshi/geshi/cpp.php
  • ./krscripts/sendemail/hooks/showthread_complete.php
  • ./krscripts/sendemail/includes/functions_sma.php 

Hooks Called:
  • init_startup
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • template_groups
  • template_safe_functions
  • template_compile
  • postbit_factory
  • postbit_display_start
  • tag_fetchbit_complete
  • fetch_musername
  • reputation_image
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • postbit_attachment
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete