|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.07.2021, 19:40 | #1 |
Новичок
Джуниор
Регистрация: 11.07.2021
Сообщений: 1
|
ктото может помочь ускорить данный код?
Код:
Последний раз редактировалось BDA; 11.07.2021 в 20:03. |
11.07.2021, 20:11 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
Как минимум, можно выходить из внутреннего цикла раньше:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 11.07.2021 в 20:50. |
21.09.2021, 11:45 | #3 |
Новичок
Джуниор
Регистрация: 14.09.2021
Сообщений: 1
|
Можно отсортировать массив "В" в котором идет поиск, можно использовать IndexOf для поиска значения , можно проверять на минимальное/максимальное значение перед поиском.
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp_339950 { class Program { static void Main(string[] args) { Console.WriteLine("введите 2 массива int c -1 (отрицательным числом) между массивами;"); string inputline = "0 10 11 22 33 44 777 8888 -1 77 89 22 10 44 55 66"; // inputline = Console.ReadLine(); // Console.WriteLine($"inputline = "{inputline}""); int k; int n = 0; int m = 0; int l = 0; List<int> A = new List<int> { }; List<int> B = new List<int> { }; List<int> C = new List<int> { }; List<int> D = inputline.Split().Select(int.Parse) .ToList(); Console.WriteLine("D (входной список 2х массивов) :"); Console.Write("[ "); foreach (int aa in D) { Console.Write($"{aa} "); }; Console.WriteLine("] \n\n"); // Заполняем первый массив до отрицательного числа while (l < D.Count) { k = D[l]; l++; if (k < 0) { break; } A.Add(k); n++; } // Заполняем второй массив до отрицательного числа while (l < D.Count) { k = D[l]; l++; if (k < 0) break; B.Add(k); m++; } Console.WriteLine("A (первичный массив поисковые значения) :"); Console.Write("[ "); foreach (int aa in A) { Console.Write($"{aa} "); }; Console.WriteLine("] \n\n"); Console.WriteLine("B (Значения где исчем) первично :"); Console.Write("[ "); foreach (int bb in B) { Console.Write($"{bb} "); }; Console.WriteLine("] "); B.Sort(); Console.WriteLine("B (Значения где исчем) отсортированно :"); Console.Write("[ "); foreach (int bb in B) { Console.Write($"{bb} "); }; Console.WriteLine("] "); // наименьше значение int B_min; // наибольшее значение int B_max; B_min = B[0]; B_max = B[B.Count -1]; Console.Write($"\n граничные значения B \n B_min={B_min}; B_max={B_max}; \n\n"); for (int i = 0; i < n; i++) { // Сравниваем очередной элемент первого массива с каждым элементом второго массива bool flag = false; int A_i = A[i]; if ((A_i>= B_min) && (A_i <= B_max)) // проверка что больше минимального значения и менее максимального { //for (int j = 0; j < m; j++) { if (A[i] == B[j]) flag = true; } flag = (B.IndexOf(A_i) != (-1) ); } C.Add(flag ? 1 : 0); } C.Add(-1); Console.WriteLine("Итоги поиска:"); for (int i = 0; i < C.Count - 1; i++) { Console.WriteLine(A[i].ToString()+" -> "+(C[i] == 1 ? "1 найдено " : "0 - нет") + " "); } Console.Write(C[C.Count - 1]); } } } /* Вывод программы введите 2 массива int c -1 (отрицательным числом) между массивами; D(входной список 2х массивов) : [ 0 10 11 22 33 44 777 8888 -1 77 89 22 10 44 55 66 ] A (первичный массив поисковые значения) : [ 0 10 11 22 33 44 777 8888 ] B (Значения где исчем) первично: [ 77 89 22 10 44 55 66 ] B(Значения где исчем) отсортированно: [ 10 22 44 55 66 77 89 ] граничные значения B B_min=10; B_max = 89; Итоги поиска: 0-> 0 - нет 10-> 1 найдено 11-> 0 - нет 22-> 1 найдено 33-> 0 - нет 44-> 1 найдено 777-> 0 - нет 8888-> 0 - нет - 1 */ |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
swift - данный storybord находится в main, но не может получить UITableView" | Farida322393 | Помощь студентам | 0 | 27.06.2020 14:38 |
может кто может помочь написать программу наC++ | Мираслава | Помощь студентам | 1 | 16.04.2017 16:41 |
Где и как скачать программу Delphi. Может кто нибудь может помочь мне - без скачивания из интернета. | IZOPGRAM | Общие вопросы Delphi | 4 | 16.06.2012 18:12 |
Кто может помочь переделать существующий код, изменить буквы на КАМ | Enf0s | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 04.05.2012 15:22 |
Нада описать код програми, кто может помочь очень буду благодарен!!! | Programmer20101 | Помощь студентам | 0 | 12.05.2010 21:15 |