#33. Операции с массивами копирование, вставка, удаление и сортировка | Язык C для начинающих
HTML-код
- Опубликовано: 6 май 2023
- Практический курс по C/C++: stepik.org/course/193691/
Телеграм-канал: t.me/java_and_c
Инфо-сайт: proproprogs.ru/c_base
Алгоритмы копирования массивов, вставки значений в произвольный элемент, удаления значения из произвольного элемента и сортировка массива методом вставок.
Не смотрел данный ролик, но зашел именно на последний, чтобы выразить благодарность за Курсы по ООП пайтон и алгоритмы)
Спасибо. Все понятно. Нравится подведение итогов под каждым занятием.
Спасибо ! Прекрасный урок. Ясное мышление, доходчивое изложение
сдвигаемся влево, рисуя стрелочку вправо....🤔.
А так то курс зачетный.
спасибо!👏👍
спасибо !!!
Познавательное видео. Конечно, можно было использовать динамические массивы, а то получается, что последний элемент удаляется при вставке, а так спасибо!
вправо
спасибо
// Сортировка массива - Метод пузырька
#include
int main(void)
{
int ar[]={-3,5,0,-8,1,10};
int size = sizeof(ar)/sizeof(*ar);
int t;
for (int i=0;ii;--j){
if (ar[j]
Альтернативный способ копирования элементов массива из одного в другой - при помощи стандартной функции memcpy(). Она работает быстрее, чем цикл for {}
Т.е. если массивы не являются строковыми массивами, используйте: memcpy(array2, array1, sizeof(array2)).
(Для строк рекомендуемым способом является использование strncpy() )
функции strcpy() и strnspy() копируют не весь массив, а только до символа '\0' (включая его)
@@selfedu_rus
Функции strcpy() и strnspy() - для строк.
А для других значений (числовых), при копировании буфера (массива) вместо цикла for {} можно использовать функцию стандартной библиотеки memcpy() (это альтернативный способ копирования массивов и он работает быстрее)
Спасибо большое 👍🏻
@@user-in9mx5ex9z
С помощью функции memcpy() можно также осуществлять вставку и удаление, то есть не перемещать/копировать значения поэлементно в цикле for() а смещать целыми блоками (блок ОТ и ДО) на нужные позиции. Это работает быстрее можно вставлять/удалять не один элемент, а сразу несколько.
Нет стандартных функций сортировки? Типа как в питоне sorted?
есть, qsort()
@@selfedu_rus спасибо, надо будет попробовать
Доброе время суток! Не надо последний элемент заменить на 0, если не все нули? Ведь он за двоится
если такой массив int marks[TOTAL_MARKS] = {1,2,3,4,5,6,7,8,9, 10};
нет, не нужно, обычно заводится еще одна переменная, которая хранит число фактически записанных данных в массив
@@selfedu_rus спасибо
@@selfedu_rus
лучше так, да, с помощью дополнительной переменной-счетчика
а почему бы просто не делать swap?
В C нет стандартной функции для замены двух переменных. Тем более, все равно элементы массива надо сдвигать в цикле. никакой swap() здесь не поможет.
@@electronic008 ты можешь её написать .
@@lindx2533
Я к тому, что она там не нужна! там все равно циклический сдвиг нужен. Можно, конечно, и в цикле, ее использовать, но зачем такой огород?