Почему Вы хотели бы использовать C# если медленнее, чем C++? [закрытый]

Проблема с вашим циклом.

Вы не должны увеличивать значение j до i. Вот почему «1 встречается 2 раза» печатает дважды. Что вам нужно сделать, так это проверить, что значение определенного индекса массива встречалось несколько раз перед выполнением части печати. ​​

public static<T> T[] subArray(T[] array, int beg, int end) {
    return Arrays.copyOfRange(array, beg, end + 1);
}

public static boolean hasDuplicateValues (int[] array, int value )
{
    boolean result = false ; 
    int count = 0 ; 
    for (int i=0 ; i< array.length; i++)
    {
           if(array[i] == value)
           {
            count = count+1 ; 
           }

    }

    if(count > 1)
    {
      result = true; 
    }

   return result; 
}

public static void main(String[] args)
{
 Scanner input = new Scanner(System.in);
     int[] num = new int[100];
     int i = 0;
     System.out.print("Enter the integers between 1 and 50: ");
     num[i] = input.nextInt();
    while(num[i] != 0){
        i++;
        num[i] = input.nextInt();
    }
    for(int j=0;j<i;j++){
        int n = 0;
        for(int k=0;k<i;k++){
            if(num[j] == num[k]){
                n++;
            }
        }


        int[] subarray = subArray(num, 0, i);
        boolean isDuplicate = hasDuplicateValues (subarray , num[i] )
    if(isDuplicate == false )
    { 
          System.out.println(num[j] + " occurs " + n + " times");
    }


    }



}
36
задан gliderkite 23 December 2013 в 14:46
поделиться

10 ответов

Кто именно эта "группа людей"? С чем они сравнивают его?

Для подавляющего большинства вещей C ++ не «намного быстрее», чем C #. Это, безусловно, имеет преимущества в различных ситуациях, особенно когда вы хотите более детерминированной обработки памяти, но, по моему опыту, узкое место в большинстве приложений не в тех местах, где C ++ может помочь. Как говорит Спулсон, большая часть производительности находится в дизайне, а не в точной реализации - и там это помогает легко пробовать разные конструкции.

Зачем нам использовать C #, когда это бит медленнее, чем C ++? Потому что обычно считается (то есть, некоторые не согласны :), чтобы развиваться было намного легче, не стреляя себе в ногу.

Что касается того, что C # может использоваться для ... для чего вы хотите использовать его? Если вы не хотите разрабатывать драйверы и ядра, это может быть хорошо для вас. (Даже в разработке ОС есть люди, использующие C # ...)

Вакансии? Нагрузки.

Downsides? Ну, сам .NET доступен только на платформах Microsoft. Есть Mono , но он не обладает такой же степенью переносимости, как Java (без сомнения, другой «медленный» язык, согласно той же группе людей).

75
ответ дан 27 November 2019 в 05:06
поделиться

Код, написанный на ассемблере, может быть невероятно быстрым. Почему бы просто не написать на собрании?

Не верьте всему, что слышите. C # был достаточно быстрым для всех моих проектов. Как правило, производительность является более важным фактором проектирования, чем производительность исходной платформы.

40
ответ дан 27 November 2019 в 05:06
поделиться

Я бы сказал, что люди, с которыми вы разговаривали, просто не знают, о чем они говорят. Легко и просто.

Многие приложения уровня предприятия построены на C # и других языках .Net. В них нет ничего медленного. Да, , как правило, имеют более медленное время запуска, но на этом все и заканчивается.

Я заметил, что вы упомянули Java в списке языков. Если вы довольны скоростью Java, C # не будет представлять никаких проблем. Вообще говоря, C # работает по крайней мере так же хорошо, как Java на многих различных типах тестов.

22
ответ дан 27 November 2019 в 05:06
поделиться

Моя последняя компания была основана по 5 ветеранов C ++ с опытом работы более 15 лет каждый. Они потратили более месяца на создание определенного сервиса Windows. Один из них найден и балуется C #. За неделю он продвинулся дальше, чем коллектив за месяц. Вскоре после этого все они переключились на C #.

Почему C #, если он может работать медленнее: какую цену вы устанавливаете на такой степени быстрого развития?

22
ответ дан 27 November 2019 в 05:06
поделиться

Почему это должно быть медленно? На самом деле, C # компилируется в «Intermediate Language», который JIT-кодируется во время выполнения, но это может дать вам преимущество в производительности, поскольку среда выполнения может генерировать наиболее оптимизированную для платформы, на которой работает код ...

В зависимости от приложения, которое вы хотите написать, «скорость» языка будет иметь незначительное влияние. Производительность вашего приложения будет в основном определяться тем, как вы его разрабатываете, хорошо ли вы используете инструменты / технологии, которые используете, и т. Д. Несомненно, C # не является «серебряной пулей», и есть проекты, в которых вы не должны его использовать, просто потому, что он не является подходящим инструментом для работы, но он прекрасно подойдет для большинства приложений для бизнеса / предприятия.

7
ответ дан 27 November 2019 в 05:06
поделиться

Я не нашел много случаев, когда C # не является хорошим выбором языков, а .Net (или Mono) не является достойной платформой. Заметные исключения: разработка на уровне ядра или драйверы. Есть много областей, где требуется низкий уровень и необработанная производительность. Для большинства, если не для всех бизнес-приложений или корпоративных приложений, C # - один из лучших вариантов для разработки. Он хорошо поддерживается, работает со многими другими системами, библиотеками, каналами связи и компонентами, уже доступными, не говоря уже о том, чтобы быть довольно хорошим языком (особенно 3.5) для работы.

ASP.Net не была плохой платформой, я вообще найти объект / стек управления, чтобы быть одним из недостатков для сложных взаимодействий. Я думаю, что ASP.Net MVC лучше подходит для более масштабируемых веб-приложений. Точно так же лучше, чем многие другие системы, с которыми я работал в прошлом.

С точки зрения уровней обслуживания и даже разработки графического интерфейса это довольно приятно. У меня гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому я не могу комментировать там. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.

Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.

У нас гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому комментировать там особо нечего. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.

Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.

У нас гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому комментировать там особо нечего. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.

Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.

C # /. Net работает так же быстро или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.

C # /. Net работает так же быстро или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.

6
ответ дан 27 November 2019 в 05:06
поделиться

Люди, с которыми вы говорили, не знают, о чем они говорят. C # очень похож на язык Java, все говорят; у него есть те же самые преимущества и недостатки. Все это работает очень похоже (Java / C # компилируется в промежуточный язык / байт-код, который интерпретируется, или JIT компилируется в нативный код, с различными подобными оптимизациями, о которых вам не нужно беспокоиться как программисту). Он используется во многих тех же ситуациях, что и Java, и действительно предназначен для того же рынка. Он движется намного быстрее и вносит много инноваций как язык, но он (на практике) в значительной степени только для Windows, если это вас беспокоит. Рынок труда похож. Оба являются очень популярными языками.

Что касается языка для изучения, я бы предложил что-то РАЗНОЕ. Вы говорите, что знаете C ++ и Java; C # не должно быть трудно подобрать. Потенциальные работодатели будут знать это. Попробуйте Scala или Python. И то, и другое даст вам новые взгляды на вещи (C # не так уж и много), и сделает вас лучшим программистом, научив вас новым способам мышления, а не просто добавив еще один инструмент в вашу коробку.

4
ответ дан 27 November 2019 в 05:06
поделиться

одна серьезная причина использовать C # вместо C ++ ......... посмотреть на все те проблемы переполнения буфера, которые есть у C ++, когда люди захватывают вашу машину, потому что они внедряют исполняемый код в ваш строки или утечки памяти .... сборщик мусора весьма удобен ИМХО

0
ответ дан 27 November 2019 в 05:06
поделиться

C # не всегда медленнее - во многих случаях он может работать так же хорошо, как и любой язык, который вы перечислили. Обычно алгоритм больше связан со скоростью, чем с выбором языка.

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

3
ответ дан 27 November 2019 в 05:06
поделиться

Даже если C ++ работает быстрее, разница невелика на современных компьютерах. Вот почему на мобильных устройствах, где процессор и память довольно ограничены, C / C ++ все еще широко используется.

Но вместо этого подумайте о времени разработки. Если бы вам понадобилось 2 месяца с использованием C ++ и 1 месяц с использованием C #, на что бы вы пошли? А когда необходимо выполнить большие изменения / рефакторинг, язык более высокого уровня делает его значительно быстрее и проще!

0
ответ дан 27 November 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: