数据结构之 将顺序表所有元素逆置,要求空间复杂度为O(1)
2017-09-30 16:43
507 查看
问题:设置一个高效的算法,将顺序表的所有的元素逆置,要求空间复杂度为O(1)。
运行结果:
#include<stdio.h> #include<stdlib.h> #include<stdbool.h> #define Maxsize 50 typedef struct SqList{ int* data; int length; }; // ---------------------------- 初始化----------------------------- bool InitList(struct SqList* L) { L->data=(int*)malloc(sizeof(int)*(Maxsize/2)); int i=0; for(i=0;i<Maxsize/2;i++) { L->data[i]=rand()%100; } L->length=Maxsize/2; return true; } void Reverse(struct SqList* L) { int temp=0; int i=0 ; for(i=0;i<(L->length)/2;i++) { // L->data[i]=i; temp=L->data[i]; L->data[i]=L->data[(L->length)-i-1]; L->data[(L->length)-i-1]=temp; } } void print(struct SqList *L) { int j=L->length; int i=0; for(i=0;i<j;i++) { printf("%d ",L->data[i]); } printf("\n"); } int main() { //-------------------初始化顺序表-------------------- struct SqList L; if(InitList(&L)==true) { printf("顺序表初始化成功!\n"); } print(&L); printf("\n\n"); Reverse(&L); print(&L); printf("\n\n"); }
运行结果:
相关文章推荐
- 从顺序表中删除所有元素值为x的元素,要求空间复杂度为O(1)
- 删除线性表中所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 数据结构顺序表删除所有特定元素x
- 数据结构之 删除顺序表中所有元素为X 的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 数据结构——时间/空间复杂度
- 数据结构(一):数据结构的基本概念和算法的时间和空间复杂度
- 顺序表所有元素逆置
- 要完整准确的 均以单链表作存储结构 试编写算法将A表和B表归并成一个按元素值递减有序的线性表C 【数据结构】假设有两个按元素值递增有序的线性表A和B 并要求利用原表的空间存放C。谁会么
- )RGB排序,一个字符串,里面只有三种字符R G B,所有的R都在G的前面,所有的G都在B的前面。将给定字符串按照此规律排序。要求不允许用辅助空间,复杂度控制在O(N)。遍历一遍就排好序。
- 数据结构:第一章(时间复杂度和空间复杂度)
- 数据结构与算法学习笔记——算法的时间和空间复杂度
- 一串首尾相连的珠子(m 个),有N 种颜色(N<=10),设计一个算法,取出其中一段,要求包含所有N 中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
- 数据结构(算法的时间复杂度和空间复杂度)
- 找出一组数据中多次出现的所有数字(空间要求最低)
- 一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
- 试设计一个算法,将数组A(0..n-1)中的元素循环右移k位,并要求空间复杂度为O(1),时间复杂度为O(n)。
- 数据结构实现以较高的效率实现删除线性表中元素值在x到y(x和y自定)之间的所有元素。
- 一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度
- 【大家来一起讨论吧】百度面试题,假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数件和正数间元素相对位置不变。时空复杂度要求:o(n),o(1)
- 【数据结构_顺序表_List_1038】顺序表中重复元素的删除