// // sort_.cpp // Sort // // Created by ljpc on 2018/4/20. // Copyright © 2018年 ljpc. All rights reserved. // #include "sort_.h" void print_array(int *arr, int n) // 打印数组 { if(n==0){ printf("ERROR: Array length is ZERO\n"); return; } printf("%d", arr[0]); for (int i=1; i<n; i++) { printf(" %d", arr[i]); } printf("\n"); } void sort_array(int *arr, int n) // 编程实现《选择排序算法》:将乱序序列arr转化为升序序列 // 函数参数:乱序整数数组(无重复元素) 数组长度 // 要求输出:调用print_array(int *arr, int n)输出前三次选择操作后的序列,以及最终的升序序列 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ /********** End **********/ }
时间: 2023-07-23 08:03:11 浏览: 233
为了实现选择排序算法,我们需要在每次遍历中找到当前未排序部分的最小元素,并将其放置在已排序部分的末尾。
下面是选择排序算法的实现代码:
```cpp
void sort_array(int *arr, int n)
{
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将最小元素与已排序部分的末尾元素交换位置
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
// 输出前三次选择操作后的序列
if (i < 3) {
print_array(arr, n);
}
}
// 输出最终的升序序列
print_array(arr, n);
}
```
你可以将这段代码添加到你的 `sort_.cpp` 文件中,然后调用 `sort_array` 函数来对数组进行排序。
相关问题
// // sort_.cpp // Sort // // Created by ljpc on 2018/4/20. // Copyright © 2018年 ljpc. All rights reserved. // #include "sort_.h" void print_array(int *arr, int n) // 打印数组 { if(n==0){ printf("ERROR: Array length is ZERO\n"); return; } printf("%d", arr[0]); for (int i=1; i<n; i++) { printf(" %d", arr[i]); } printf("\n"); } void sort_array(int *arr, int n) // 编程实现《冒泡排序算法》:将乱序序列arr转化为升序序列 // 函数参数:乱序整数数组arr 数组长度 // 要求输出:调用print_array(int *arr, int n)输出前三次冒泡操作后的序列,以及最终的升序序列 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ /********** End **********/ }
为了实现冒泡排序算法,我们需要对数组进行多次遍历,每次遍历比较相邻两个元素的大小,并交换位置,直到整个数组按升序排列为止。
下面是冒泡排序算法的实现代码:
```cpp
void sort_array(int *arr, int n)
{
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 每次遍历后输出当前数组的状态
print_array(arr, n);
}
// 输出最终的升序序列
print_array(arr, n);
}
```
你可以将这段代码添加到你的 `sort_.cpp` 文件中,然后调用 `sort_array` 函数来对数组进行排序。
// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. All rights reserved. // #include "binary_tree.h" void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现) // 参数:二叉树根节点root // 输出:二叉树的层次遍历,中间没有空格,末尾不换行。 { // 请在这里补充代码,完成本关任务 /********** Begin / /* End **********/ }
您好,您的代码中注释中缺少了一个*符号,导致注释未被正确结束,正确的代码如下:
```cpp
// binary_tree.cpp
// BinaryTreeApp
//
// Created by ljpc on 2018/5/3.
// Copyright © 2018年 ljpc. All rights reserved.
//
#include "binary_tree.h"
void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现)
{
if (!root) return; // 若根节点为空,则直接返回
queue<BiTreeNode*> q; // 建立一个队列,存放二叉树节点
q.push(root); // 将根节点加入队列
while (!q.empty()) { // 当队列非空
BiTreeNode* node = q.front(); // 取出队头元素
q.pop(); // 弹出队头元素
cout << node->data; // 输出节点元素
if (node->left) q.push(node->left); // 若该节点有左子节点,则将左子节点加入队列
if (node->right) q.push(node->right); // 若该节点有右子节点,则将右子节点加入队列
}
}
```
这样代码就可以正常编译运行了。
阅读全文