-
给定n个数据元素,逐个输入,建立一个有序单链表的时间复杂度是o(n^2)
-
设线性表非空,可以在o(1)时间内在表尾插入一个新结点的方法有:
-带表头结点的单循环链表,一个链表指针指向表头结点(在表头结点后插入一个新结点然后交换这个结点与表头结点);
-不带表头结点的单循环链表,一个链表指针指向表的第一个节点。 -
若要在o(1)时间复杂度上实现两个循环单链表头尾相接,则对应两个循环单链表应设置一个指针,分别指向各自的尾结点。
-
若需要对线性表中保存的无序数据按关键字进行查找,顺序表、动态链表、静态链表的查找效率没有区别。
题目:线性表中元素递增有序且按顺序存储于计算机内。设计算法完成下述功能:用最少时间把所有值为负数的元素移到全部正数值元素前边的算法。
int Rearrange(int a[],int n){
int i=0,j=n-1;//i,j初始指向线性表的第一个和第n个元素
int t=a[0];//暂存枢轴元素
while(i<j){
while(a[j]>0) j--;//如果当前元素大于0,j前移
a[i]=a[j]