
1. 下面的程序块用于计算两个n * n矩阵相乘的算法,并尝试找出其时间复杂度.
for(i = 0; i for(j = 0; j c [i] [j] = 0; for(k = 0; k c [i] [j] = c [i] [j] + a [i] [k] * b [k] [j]; } 2. 编写一个函数RemoveZeroElements(array,n)来检查整数数组的每个元素并删除值为0的任何元素. 由于此操作将更改数组的有效长度,因此有必要返回新数组的有效长度. 数组. 例如,假设分数是一个包含可选测试项目分数的数组. nScores指示数组的有效长度,如下表所示: 此声明: nScores = RemoveZeroElements(sCores,nScores); 所有得分为0的分数都应删除,并将上表中的数组压缩为下表: 3. 编写一个函数RemoveDuplicates(array,n)以从排序的整数数组中删除所有重复值并仅保留一个副本. 需要返回新数组的有效长度. 例如,假设数组分数包含以下值: 声明: nScores = RemoveDuplicates(scores,nScores); 应删除重复的分数,并将上表中的数组压缩为下表: 4. 许多算法问题都与解决方案中的排序有关. 例如,您可以基于随机键对字符串进行“排序”以对数组进行加扰. 一种方法是使用选择排序算法,然后更改找到最小值的位置以选择随机位置. 结果是一个加扰算法,其中各种可能的输出都是同等可能的. 编写一个shuffle.c程序,以通过随机排序输出介于1-52之间的整数. 5. 插入排序算法的原理与选择排序相同. 它还会立即检查数组的每个元素. 但是,在此过程中,每个步骤的目的不是要在其余元素中找到最小值并与正确的位置值进行交换,而是要确保选中的元素以正确的顺序排列. 尽管这些元素的位置可能会随着添加新元素而发生变化,但是插入的元素和先前的序列仍一起构成按特定顺序排列的序列. 例如查找与排序实验报告,考虑以下数据,插入排序的第一个周期不需要任何操作,因为始终对元素数组进行排序. 接下来的两个循环不需要重新排列数组,因为31-41-59形成有序子数组. 第一个有意义的操作出现在下一个周期中. 当有必要将26插入已排在前面的序列中时查找与排序实验报告,为了找到应该放置26的位置,应将已排在前面的元素向后移动. 寻找26位. 在每个步骤中,为了准备26个存储位置,需要将其他元素移动一个位置,最后到达位置0. 因此,第四个循环之后获得的顺序为: 在接下来的每个步骤中,需要做的是将当前元素插入已排序的子数组中,直到到达数组末尾为止. 使用插入排序方法实现功能SortIntegerArray,并尝试分析算法的时间复杂度. 【】【】



本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-271546-1.html
民族生存都难以做到
二炮部队演习
作为正规小学毕业的人告诉泻教授