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

Работа с массивами и списками. Методы сортировки и поиска. - C++

Восстановить пароль Регистрация
 
Андрій
0 / 0 / 0
Регистрация: 10.04.2009
Сообщений: 9
31.12.2009, 03:25     Работа с массивами и списками. Методы сортировки и поиска. #1
помогите написать програму

Задачa
Написать программу которая выполняет следующие действия:
1) считывает данные из файла и сохраняет их в памяти в виде списока с двойными связями
2) Выводит данные на экран в виде двух столбцов. , Разделенных тремя символами пробела. Столбцы должны иметь заголовки X и Y соответственно.
3) Сортировать данные по возрастанию или по убыванию по выбору пользователя ,методом обмена
4) Выводить на экран отсортированную последовательность.
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
void sort_choice(float *mas,int size)    //функция для сортировки
{
    float tmp;
    int i,j,e;
    tmp=mas[0];            //временная переменная
    for(i=0;i<size;i++)    //цикл для сортировки
    {
        e=i;
        tmp=mas[i];        //первое число массива присваиваем временной переменной
        for(j=i;j<size;j++)        
        {                        
            if(mas[j]<tmp)    //выбираем элемент с найменьшим значением    (1)
            {                    
                tmp=mas[j];        
                e=j;            
            }
        }
        if(e!=i)                //и обмениваем этот элемент с первым числом массива
        {                        
            mas[e]=mas[i];        
            mas[i]=tmp;            
        }
    }
    return;
}
 
 
////////////////////////////////////////
 
 
int binar_search(float *mas,float search_key,int size) //функция для поиска
{
    int min,mid,max;
    min=0;
    max=size-1;
    while(min<=max)     //цикл поиска выполняется пока мин значение меньше или равно максимальному
    {
        mid=(min+max)/2;        //находим середину массива
        if(search_key<mas[mid])    //если запрошенное нами значение меньше,чем середина массива,            (2)
        {
            max=mid-1;        //то присваиваем максимальному значению "среднее-1"
        }
        else                        
        {
            if(search_key>mas[mid])    //если запрошенное нами значение больше,чем середина массива,    (3)
            {
                min=mid+1;    //то присваиваем максимальному значению "среднее+1"
            }
            else
            {
            cout<<endl<<"Found element n = "<<mid+1<<endl; //выводим найденное значение
                return mid;
            }
        }
    }
    cout<<endl<<"Element not found"<<endl;
    return -1;
}



связь между даными одинаковой строчки в файле должна сохраняться!
Вложения
Тип файла: txt DP8106.txt (158 байт, 19 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2009, 03:25     Работа с массивами и списками. Методы сортировки и поиска.
Посмотрите здесь:

методы сортировки C++
Методы сортировки C++
C++ Методы сортировки
C++ Методы сортировки
C++ Методы сортировки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
31.12.2009, 06:28     Работа с массивами и списками. Методы сортировки и поиска. #2
Цитата Сообщение от Андрій Посмотреть сообщение
в виде списока с двойными связями
т.е. двусвязный список. а этот код у тебя никакого отношения к спискам не имеет. переделывай.
Андрій
0 / 0 / 0
Регистрация: 10.04.2009
Сообщений: 9
01.01.2010, 21:34  [ТС]     Работа с массивами и списками. Методы сортировки и поиска. #3
А как задать двусвязный список?
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.01.2010, 16:15     Работа с массивами и списками. Методы сортировки и поиска. #4
C
1
2
3
4
5
struct data {
   float val;
   struct data* prev;
   struct data* next;
};
Yandex
Объявления
02.01.2010, 16:15     Работа с массивами и списками. Методы сортировки и поиска.
Ответ Создать тему
Опции темы

Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru