当前位置: 首页 > wzjs >正文

北京网站建设公司拟百度的营销推广

北京网站建设公司拟,百度的营销推广,深圳网站建设品牌策划,做网站需要了解的内容概念: 类似于线性表。 对于二维数组,我们可以把其看做成是这样一个线性表:它的每个数据元素也是一个定长的线性表。例如:一个矩阵,我们可以以行为向量,把每一行看作是一个元素,也可以一列为向量把每一列看…

概念:

类似于线性表。

对于二维数组,我们可以把其看做成是这样一个线性表:它的每个数据元素也是一个定长的线性表。例如:一个矩阵,我们可以以行为向量,把每一行看作是一个元素,也可以一列为向量把每一列看作是一个元素,此时二维数组就可以看做是一个线型表。即以行为主序或以列为主序。

以行为主序,假设每个元素占L个存储单元二维数组中任意一个元素的位置aji可以表示为

LOC(i,j)=LOC(0,0)+(b2Xi+j)L

2.基本操作:

  1. 访问:通过索引直接访问元素,时间复杂度为 O(1)。

  2. 插入:在指定位置插入元素,可能需要移动后续元素,时间复杂度为 O(n)。

  3. 删除:删除指定位置的元素,可能需要移动后续元素,时间复杂度为 O(n)。

  4. 更新:修改指定位置的元素,时间复杂度为 O(1)。

  5. 查找:遍历数组查找元素,时间复杂度为 O(n)。

3.代码实现:

1. 数组的常见操作

#include <stdio.h>// 打印数组的函数
void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");
}int main() {// 声明并初始化数组int numbers[5] = {10, 20, 30, 40, 50};// 访问元素printf("第三个元素: %d\n", numbers[2]);  // 输出: 30// 修改元素numbers[1] = 100;printf("修改后的数组: ");printArray(numbers, 5);  // 输出: 10 100 30 40 50// 计算数组长度int length = sizeof(numbers) / sizeof(numbers[0]);printf("数组长度: %d\n", length);  // 输出: 5return 0;
}

运行结果

第三个元素: 30
修改后的数组: 10 100 30 40 50 
数组长度: 5

2.稀疏矩阵的转制

1. 三元组表

三元组表是一种常见的稀疏矩阵存储方式,用三个数组分别存储非零元素的行索引、列索引和值。

例如,矩阵:

0 0 3
0 0 0
4 0 0

可以表示为:

  • 行索引数组:row = {0, 2}

  • 列索引数组:col = {2, 0}

  • 值数组:value = {3, 4}

C语言实现稀疏矩阵转置的示例:

#include <stdio.h>
#include <stdlib.h>// 定义三元组结构
typedef struct {int row;int col;int value;
} Triple;// 定义稀疏矩阵结构
typedef struct {int rows;int cols;int numNonZero;  // 非零元素个数Triple* data;    // 三元组数组
} SparseMatrix;// 转置函数
SparseMatrix transpose(SparseMatrix matrix) {SparseMatrix result;result.rows = matrix.cols;  // 转置后行数等于原列数result.cols = matrix.rows;  // 转置后列数等于原行数result.numNonZero = matrix.numNonZero;result.data = (Triple*)malloc(result.numNonZero * sizeof(Triple));// 交换行和列索引for (int i = 0; i < matrix.numNonZero; i++) {result.data[i].row = matrix.data[i].col;result.data[i].col = matrix.data[i].row;result.data[i].value = matrix.data[i].value;}// 按新的行索引排序(简单冒泡排序)for (int i = 0; i < result.numNonZero - 1; i++) {for (int j = 0; j < result.numNonZero - i - 1; j++) {if (result.data[j].row > result.data[j + 1].row) {// 交换三元组Triple temp = result.data[j];result.data[j] = result.data[j + 1];result.data[j + 1] = temp;}}}return result;
}// 打印稀疏矩阵
void printSparseMatrix(SparseMatrix matrix) {printf("行\t列\t值\n");for (int i = 0; i < matrix.numNonZero; i++) {printf("%d\t%d\t%d\n", matrix.data[i].row, matrix.data[i].col, matrix.data[i].value);}
}int main() {// 定义一个稀疏矩阵SparseMatrix matrix;matrix.rows = 3;matrix.cols = 3;matrix.numNonZero = 2;matrix.data = (Triple*)malloc(matrix.numNonZero * sizeof(Triple));// 初始化稀疏矩阵的非零元素matrix.data[0].row = 0;matrix.data[0].col = 2;matrix.data[0].value = 3;matrix.data[1].row = 2;matrix.data[1].col = 0;matrix.data[1].value = 4;printf("原矩阵:\n");printSparseMatrix(matrix);// 转置矩阵SparseMatrix transposedMatrix = transpose(matrix);printf("\n转置后的矩阵:\n");printSparseMatrix(transposedMatrix);// 释放内存free(matrix.data);free(transposedMatrix.data);return 0;
}

运行结果:

原矩阵:
行	列	值
0	2	3
2	0	4转置后的矩阵:
行	列	值
0	2	4
2	0	3

4.应用场景:

  • 数据存储:存储固定数量的同类型数据。

  • 算法实现:如排序、查找等。

  • 矩阵运算:多维数组用于矩阵操作。

5.优缺点:

优点

  • 随机访问速度快。

  • 内存连续,缓存友好。

缺点

  • 大小固定,灵活性差。

  • 插入和删除效率低。

http://www.dtcms.com/wzjs/23383.html

相关文章:

  • 网站怎么做留言区性价比高seo的排名优化
  • 株洲网站优化100%能上热门的文案
  • 伊春网站建设佛山网站优化服务
  • 怎么找人做网站啊安徽seo推广公司
  • 绵阳欣诚建设宁波seo推广联系方法
  • 百度站长 添加网站百度旗下产品
  • 区县12380网站建设情况seo有哪些作用
  • 企业网站怎么制作流程南京网站建设
  • 成都平面设计公司有哪些绍兴百度seo
  • wordpress 运行效率汉川seo推广
  • 内部劵网站怎么做关键词推广系统
  • 威海百姓网免费发布信息网seo关键词优化技巧
  • 常州网站推广软件seo属于什么
  • 电脑怎么创建网站吗seo技巧优化
  • 平台营销型网站建设深圳居家办公
  • 太原做微网站的公司培训心得体会总结
  • 海城网站制作建设域名备案查询
  • 金华专业做网站app推广软件有哪些
  • 公司注册网站的费用多少品牌运营总监
  • 做网站aspwin10优化大师有用吗
  • 怎么把网站做二维码怎么在百度上发布个人文章
  • 制作网站用c#做前台品牌推广是做什么的
  • 自建站需要注册公司吗百度搜索推广创意方案
  • 黑龙江省城乡建设厅网站免费招收手游代理
  • 中科商务网做网站垃圾html模板网站
  • java主要用来做网站吗深圳推广
  • 佛山行业网站设计正规引流推广公司
  • wordpress备份如何安装外贸seo网站推广
  • 网站换肤功能 js靠谱seo整站优化外包
  • 如何在局域网中做网站公司软文代写