第13周 OJ项目2-在有序数组中插入数据

/* 
 * Copyright (c) 2014, 烟台大学计算机学院 
 * All rights reserved. 
 * 文件名称:test.cpp 
 * 作    者:呼亚萍 
 * 完成日期:2014年 11 月 24日 
 * 版 本 号:v1.0 
 * 
 * 问题描述:编写程序,在有序数组中插入数据
 * 输入描述:相应的程序
 * 程序输出:插入数据后重新排列的数据
 */

#include <iostream>
using namespace std;
int main()
{

    int d[10];
    int i,b;
    for(i=0; i<9; i++)
    cin>>d[i];
    cin>>b;
    i=8;
    while(i>=0&&d[i]>b)
    {
        d[i+1]=d[i];
        i--;
    }
    i++;
    d[i]=b;
    for(i=0; i<10; i++)
    cout<<d[i]<<endl;
    return 0;
}


运算结果:

知识点总结:

利用数组排序,采用倒推的方式进行排序

学习心得:

有时候逆向思维能更好的解决问题。
 

 

### 关于 BJFUOJ 数据结构 数组 题目解析 BJFUOJ(北京林业大学在线评测系统)提供了许多与数据结构相关的题目,其中包括数组的应用。以下是对一些典型数组相关题目的解析和答案示例。 #### 1. 数组基础操作 在处理数组时,常见的操作包括初始化、遍历、查找、插入和删除等。例如,给定一个整数数组 `arr` 和目标值 `target`,要求找到数组中等于 `target` 的所有元素的索引。 ```python def find_indices(arr, target): indices = [] for i in range(len(arr)): if arr[i] == target: indices.append(i) return indices # 示例 arr = [3, 5, 2, 5, 8, 5] target = 5 result = find_indices(arr, target) print(result) # 输出: [1, 3, 5] ``` 此代码通过遍历数组,将所有等于目标值的索引存储到列表中[^2]。 #### 2. 二维数组的操作 对于二维数组,通常需要按照行或列进行遍历。例如,计算二维数组中每行的最大值。 ```python def row_max(matrix): result = [] for row in matrix: result.append(max(row)) return result # 示例 matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] result = row_max(matrix) print(result) # 输出: [3, 6, 9] ``` 上述代码通过嵌套循环遍历二维数组,并使用内置函数 `max()` 找到每行的最大值[^3]。 #### 3. 动态数组的应用 动态数组允许在运行时调整大小。例如,在 C++ 中可以使用 `std::vector` 实现动态数组。下面是一个简单的例子,展示如何向动态数组中添加元素并输出。 ```cpp #include <iostream> #include <vector> int main() { std::vector<int> vec; vec.push_back(10); vec.push_back(20); vec.push_back(30); for (int i = 0; i < vec.size(); ++i) { std::cout << vec[i] << " "; } return 0; } // 输出: 10 20 30 ``` 这段代码展示了如何使用 `std::vector` 动态管理数组,并通过 `push_back()` 方法添加元素[^4]。 #### 4. 数组排序问题 数组排序是常见的一类问题。例如,实现一个简单的冒泡排序算法。 ```python def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr # 示例 arr = [64, 34, 25, 12, 22, 11, 90] sorted_arr = bubble_sort(arr) print(sorted_arr) # 输出: [11, 12, 22, 25, 34, 64, 90] ``` 冒泡排序通过多次比较相邻元素并交换位置来实现排序[^5]。 ### 解析总结 以上解析涵盖了数组的基本操作、二维数组处理、动态数组应用以及排序算法等内容。这些知识点在 BJFUOJ 数据结构题目中经常出现,掌握这些内容有助于解决相关问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值