如何实现递增有序线性表中查找与插入X操作
线性表(a1,a2,a3,……,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成用最少时间在表中查找数值为X的元素,若找到将其与后继元素位置相交换,若找不到将其插入表中并使表中元素仍递增有序。 这道题重点信息是线性表有序,即数组有序,同时还要求用最少的时间查找表中值为X的元素。这时,我们可以考虑采用折……
线性表(a1,a2,a3,……,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法完成用最少时间在表中查找数值为X的元素,若找到将其与后继元素位置相交换,若找不到将其插入表中并使表中元素仍递增有序。 这道题重点信息是线性表有序,即数组有序,同时还要求用最少的时间查找表中值为X的元素。这时,我们可以考虑采用折……
长度为n的顺序表L,编写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为X的数据元素。 要求时间复杂度为O(n),这里隐藏着条件,排序算法不能使用,因为排序中最低时间复杂度为O(nlogn),这是大于题目中所给的要求为O(n)的条件。因此,我们要把排序算法排除在外,转而采用其它的方法。 (1)删除……
顺序表和链表都是线性表,这是他们的共同之处(逻辑结构相同),但它们的存储方式是不同的。那就看看在顺序表和链表中运算效率是怎样产生不同的? 线性表既可以采用顺序存储方式,也可以采用链式存储方式来实现。 (1)在顺序存储方式下,在线性表中插入和删除元素,平均要移动一半的元素,时间复杂度是O(n)。 事实上,就是……