Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2011, 23:58   #1
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию сортировка подсчетом С++

всем привет, пишу с проблемой сортировки подсчетом, использую наипростейший алгоритм
Код:
SimpleCountingSort
    for i = 0 to k - 1
        C[i] = 0;
    for i = 0 to n - 1
        C[A[i]] = C[A[i]] + 1;
    b = 0;
    for j = 0 to k - 1
        for i = 0 to C[j] - 1
            A[b] = j;
            b = b + 1;
мой код
Код:
#include <iostream>
using namespace std;

void SimpleCountingSort (int A[], int n)
{
    int k, i, j;
    int C[k];
    for (i = 0; i< k - 1; i++)
        C[i] = 0;                //creating additional array C[0..k-1] that consists of zeros
    
    for (i = 0; i< n - 1 ; i++)
        C[A[i]] = C[A[i]] + 1;  //counting elements of entered array A consistenly
                               //for aech A[i] increment C[A[i]] by 1
    int b = 0;
    for (j = 0; j< k - 1; j++)   //for each j (0..k-1)
        for (i = 0; i< C[j] - 1; i++) //going through C array
            A[b] = j;    //consistenly writing number j into array A C[j] times 
           b = b + 1;

}

	int main()
	{
	
		int l;
		cin>>l;
		int *m = new int [l];
		for (int i=0; i<l; i++)
		cin>>m[l];

		SimpleCountingSort(m, l);
		
		for (int i=0; i<l; i++)
		cout<<m[l]<<" ";


	}
видимо я делаю что-то не так, потому что программа зависает( помогите,пожалуйста, найти ошибки..
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Старый 02.03.2011, 07:33   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
for (int i=0; i<l; i++)
cin>>m[l];
1)ну для начало вы заполняяете l раз (l-ый элемет массива а) а не i-ый
2)void SimpleCountingSort (int A[], int n) не возвращает никакого значения, и в нутри функции не выводится массив.

держи накидал на быструю руку, могут быть синтаксические ошибки. Проверь

Код:
#include<iostream>
using namespace std;
const int n_max=100;
const int m_max=255;
int a[n_max], b[n_max], c[ m_max], n, j, i;
void main()
{
cin>>n;
for (i=0; i<n;i++)
cin>>a[i];

for(j=0; j<m_max; j++) c[j]=0;
for(i=0; i<n; i++) c[a[i]+1]++;
for(j=0; j<m_max; j++) c[j]+=c[j-1];
for(i=0;i<n;i++) b[c[a[i]]++]=a[i];
for(i=0;i<n;i++) a[i]=b[i];

for(c[a[i]]=0; c[a[i]]<n; c[a[i]]++) cout<<b[c[a[i]]]<<" ";
cout<<endl;
}

Последний раз редактировалось Stilet; 02.03.2011 в 08:38.
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 02.03.2011, 08:40   #3
Guzal
Форумчанин
 
Аватар для Guzal
 
Регистрация: 11.09.2010
Сообщений: 101
По умолчанию

спасибо большое, помогли!)
I'm a rebel. [I think positively].
Guzal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка с подсчетом в цикле. Риндера Общие вопросы C/C++ 2 20.10.2010 14:26
Проблема с подсчетом SerG1ON Microsoft Office Excel 0 04.02.2010 14:55
Сортировка подсчетом без дополнительного массива Lussee Помощь студентам 0 06.01.2010 13:47
Сортировка подсчетом (delphi) Лексей Помощь студентам 10 05.12.2009 16:33
OpenGL проблема с подсчетом FPS AS10 Мультимедиа в Delphi 4 15.09.2009 21:17