Темы таблицы последовательности структуры данных (5)

Таблица последовательности Раздел Описание и реализация кода

Описание заголовка: Удалить все элементы, значения которых повторяются, из таблицы упорядоченной последовательности, чтобы все элементы в таблице имели разные значения.
Идея алгоритма: этот раздел представляет собой упорядоченный список. Элементы с одинаковым значением также должны находиться в последовательных позициях. Используя идею, аналогичную сортировке прямым вставкой, первый элемент изначально рассматривается как неповторяющийся упорядоченный список. Затем оцените по очереди, совпадают ли следующие элементы с последним элементом предыдущего неповторяющегося упорядоченного списка. Если они совпадают, продолжайте судить в обратном порядке. Если они отличаются, вставьте их в конец предыдущего неповторяющегося упорядоченного списка. повторяющийся упорядоченный список до тех пор, пока не будет оценен конец списка.

Код реализации:

bool del_same(sqList &L)
{
    
    
    int i,j;
    if(L.length==0)
        return false;
	for (i = 0,j=1; j< L.length; j++)
	{
    
    
	    if (L.data[i]!=L.data[j])
	         L.data[++i]=L.data[j];
	 }
	L.length = i+1;
	return true;
}

Если этот вопрос изменить на неупорядоченную таблицу, а временная сложность должна быть O (n), то можно использовать хеш-таблицу.

Guess you like

Origin blog.csdn.net/ATTAIN__/article/details/107936016
5