struct TS {
int index;
char name[];
}; struct TS b[] = {{,"s5"},{,"s2"},{,"s3"},{,"s1"},{,"s8"}}; struct TS a[];
int i;
int length = sizeof(a) / sizeof (struct TS);
for(i=;i<length;i++){
struct TS tmp = {,""};
a[i] = tmp;
} for (i=; i<; i++) {
int num = b[i].index;
if(a[num].index >= ){
a[num] = b[i];
}else{
struct TS tmp = {,""};
a[num] = tmp;
}
} for (i=; i<; i++) {
if(a[i].index)
printf("%s\n",a[i].name);
}
相关文章
- 桶排序-C-结构体排序
- 向量体系结构(5):步幅&&集中一分散- 在C语言中,矩阵的行存储是连续的,但列之间存在较大的步幅。以矩阵D为例,如果要连续访问其列中的元素(内层循环的目的),每次迭代需要跳过整个行的宽度。Fortran语言通常以列主序存储数组,意味着矩阵的列元素在内存中是连续的,意味着访问其连续行元素时需要跨过较多内存空间。 编译器在向量化代码时,需要识别并优化这些步幅问题,以便有效地利用向量处理器的并行能力。如果不对循环进行重新排序或调整访问模式,处理器可能无法有效加载连续的向量元素到寄存器中进行并行运算,这会影响性能。 编译器可以通过循环变换(如循环展开、循环交换等)来改善内存访问模式,以减小步幅或使其适应向量寄存器的宽度。例如,通过改变循环顺序,使内存访问变得更加连续,从而减少跨步读取的次数。 向量处理器处理非连续数据
- [数据结构]———交换排序
- 数据结构复习:交换排序原理及C++实现
- 【数据结构与算法】常见排序算法(Sorting Algorithm)-4. 直接选择排序(Selection Sort)
- 数据结构与算法-选择排序
- 深入理解数据结构第五弹——排序(2)——快速排序
- 【数据结构与算法】:快速排序和冒泡排序-三,冒泡排序
- 数据结构各类排序算法分析
- Hark的数据结构与算法练习之简单选择排序