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

Сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблон http://www.cyberforum.ru/cpp-beginners/thread191476.html
Всем доброе время суток)) Вот нпаисал прогу: #include <string.h> #include <iostream> using namespace std; template<class T> class List{ private: struct Element{
C++ Дано число n. Найти сумму n-значных чисел Кто может решит такую задачу. Дано число n. Найти сумму n-значных чисел. Ограничениа 0<n<=100. Хочу сказать что эту задачу я решил, просто интересно кто кокой алгоритм придложет. http://www.cyberforum.ru/cpp-beginners/thread191461.html
C++ Удаление узла бинарного дерева
всем привет.вот есть у меня бинарное дерево тока фун-ии добавления и обхода.очень нужно удалени помогите плиз. .cpp #include <iostream> using namespace std; #include "TreeNode.h" int...
C++ Это массив?
static int attrListSgl = {GLX_RGBA, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE, 4, GLX_DEPTH_SIZE, 16, None}; Это массив?
C++ Что это структура? http://www.cyberforum.ru/cpp-beginners/thread191425.html
#include<stdio.h> #include<stdlib.h> #include<X11/X.h> #include<X11/Xlib.h> #include<GL/gl.h> #include<GL/glx.h> #include<GL/glu.h> Display *dpy; Window ...
C++ delete или new (typeid(void*))(void*) Доброе время суток. Пишу список. Телом каждого элемента (el) списка является void указатель(body). (предполагается что тело элемента может быть любого типа, т.е. переменные, классы, другой такой же... подробнее

Показать сообщение отдельно
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
16.11.2010, 14:11  [ТС]
Столкнулся с двумя видами поиска (Бинарный и Линейный), вот собственно исходники:
Бинарный (рекурсивный и не рекурсивный)
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
#include <stdio.h>
#include <conio.h>
#define MAX_LEN 10
 
/* Non-Recursive function*/
void b_search_nonrecursive(int l[],int num,int ele) {
    int l1, i, j, flag = 0;
    l1 = 0;
    i = num - 1;
    while(l1 <= i) {
        j = (l1 + i) / 2;
        if( l[j] == ele) {
            printf("\nThe element %d is present at position %d in list\n", ele, j);
            flag = 1;
            break;
        }
        else
            if(l[j] < ele)
                l1 = j + 1;
            else
                i = j - 1;
    }
    if( flag == 0)
        printf("\nThe element %d is not present in the list\n", ele);
}
 
/* Recursive function*/
int b_search_recursive(int l[], int arrayStart, int arrayEnd, int a) {
    int m, pos;
    if (arrayStart <= arrayEnd) {
        m = (arrayStart + arrayEnd) / 2;
        if (l[m] == a)
            return m;
        else 
            if (a < l[m])
                return b_search_recursive(l, arrayStart, m - 1, a);
            else
                return b_search_recursive(l, m + 1, arrayEnd, a);
    }
    return -1;
}
 
void read_list(int l[], int n) {
    int i;
    printf("\nEnter the elements:\n");
    for(i = 0; i < n; i++)
        scanf("%d", &l[i]);
}
 
void print_list(int l[], int n) {
    int i;
    for(i = 0; i < n; i++)
        printf("%d\t", l[i]);
}
 
/*main function*/
void main() {
    int l[MAX_LEN], num, ele, f, l1, a;
    int ch, pos;
    printf("======================================================");
    printf("\n\t\t\tMENU");
    printf("\n=====================================================");  
    printf("\n[1] Binary Search using Recursion method");  
    printf("\n[2] Binary Search using Non-Recursion method");  
    printf("\n\nEnter your Choice:");  
    scanf("%d",&ch); 
    if(ch <= 2 & ch > 0) { 
        printf("\nEnter the number of elements : ");  
        scanf("%d", &num);  
        read_list(l, num);  
        printf("\nElements present in the list are:\n\n");  
        print_list(l, num);  
        printf("\n\nEnter the element you want to search:\n\n");  
        scanf("%d", &ele);     
        switch(ch) {
        case 1:printf("\nRecursive method:\n");  
            pos = b_search_recursive(l, 0, num, ele);  
            if(pos == -1) {  
                printf("Element is not found");  
            }  
            else {  
                printf("Element is found at %d position", pos);  
            }  
            getch();   
            break;
        case 2:printf("\nNon-Recursive method:\n"); 
            b_search_nonrecursive(l, num, ele);
            getch();
            break;
        }
    }
    getch(); 
}
Линейный(рекурсивный и не рекурсивный)
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
#include <stdio.h>  
#include <conio.h>
#define MAX_LEN 10 
 
/* Non-Recursive method*/
void l_search_nonrecursive(int l[], int num, int ele) {
    int j, f = 0;
    for(j = 0; j < num; j++)
        if( l[j] == ele) {
            printf("\nThe element %d is present at position %d in list\n", ele, j);
            f = 1;
            break;
        }
        if(f == 0)
            printf("\nThe element is %d is not present in the list\n", ele);
}
 
/* Recursive method*/
void l_search_recursive(int l[], int num, int ele) {
    int f = 0;
    if( l[num] == ele) {
        printf("\nThe element %d is present at position %d in list\n", ele, num);  
        f = 1;
    }
    else {
        if((num == 0) && (f == 0)) {
            printf("The element %d is not found.", ele);
        }
        else {
            l_search_recursive(l, num - 1, ele);
        }
    }
    getch();
}
 
void read_list(int l[], int num) {
    int j;
    printf("\nEnter the elements:\n");
    for(j = 0; j < num; j++)
        scanf("%d", &l[j]);
}
 
void print_list(int l[], int num) {
    int j;
    for(j = 0; j < num; j++)
        printf("%d\t", l[j]);
} 
 
void main() {
    int l[MAX_LEN], num, ele;
    int ch;    
    printf("======================================================");  
    printf("\n\t\t\tMENU");  
    printf("\n=====================================================");  
    printf("\n[1] Linary Search using Recursion method");  
    printf("\n[2] Linary Search using Non-Recursion method");  
    printf("\n\nEnter your Choice:");  
    scanf("%d", &ch);    
    if(ch <= 2 & ch > 0) { 
        printf("Enter the number of elements :");  
        scanf("%d", &num);  
        read_list(l, num);  
        printf("\nElements present in the list are:\n\n");  
        print_list(l, num);  
        printf("\n\nElement you want to search:\n\n");  
        scanf("%d", &ele);    
        switch(ch) {  
        case 1:printf("\n**Recursion method**\n");  
            l_search_recursive(l, num, ele);  
            getch();  
            break;  
        case 2:printf("\n**Non-Recursion method**\n");  
            l_search_nonrecursive(l, num, ele);
            getch();  
            break;  
        }  
    }  
    getch();  
}  
/*end main*/
Кто нибудь расставите комментарии в двух данных исходниках. Заранее спасибо =)

Добавлено через 24 минуты
Temirlan90, Запустилась программа?
да, спасибо

RUSya82, как я понял, вы там все алгоритмы сравнивали которые я выкладывал?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru