// 选择排序算法 for ( i = 0; i < num_records - 1; i++) { int max_index = i; for ( j = i + 1; j < num_records; j++) { if (sorted[j].score > sorted[max_index].score) max_index = j; } if (i != max_index) { struct Employee temp = sorted[i]; sorted[i] = sorted[max_index]; sorted[max_index] = temp; } } printf("员工编号\t员工姓名\t员工所属部门\t员工绩效分数\n"); // 循环打印排序后的记录 for ( i = 0; i < num_records; i++) { printf("%-8d\t%-10s\t%-12s\t%d\n", sorted[i].id, sorted[i].name, sorted[i].department, sorted[i].score); } }与之相同作用的代码还能怎么打
时间: 2024-02-14 15:09:12 浏览: 134
用蛮力法实现选择排序,冒泡排序程序;用减治法实现插入排序;分治法应用-快排,合并排序,0-1背包问题;Prim算法求最小生成树。伪代码以及java代码实现
这段代码可以使用其他排序算法实现相同的功能,例如冒泡排序、插入排序等。下面是使用冒泡排序算法实现的代码示例:
```
for (i = 0; i < num_records - 1; i++) {
for (j = 0; j < num_records - i - 1; j++) {
if (sorted[j].score < sorted[j+1].score) {
struct Employee temp = sorted[j];
sorted[j] = sorted[j+1];
sorted[j+1] = temp;
}
}
}
printf("员工编号\t员工姓名\t员工所属部门\t员工绩效分数\n");
for (i = 0; i < num_records; i++) {
printf("%-8d\t%-10s\t%-12s\t%d\n", sorted[i].id, sorted[i].name, sorted[i].department, sorted[i].score);
}
```
这段代码使用冒泡排序算法,每次比较相邻的两个元素,如果前面的元素比后面的元素大,则交换它们的位置。这样一轮比较下来,最大的元素就会被交换到最后面,接着对剩余的元素进行同样的操作,直到整个数组都被排序完毕。最后,按照员工编号、姓名、所属部门、绩效分数的顺序打印出排序后的员工记录。
阅读全文