IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 二十一天好习惯 第一期-5 -> 正文阅读

[数据结构与算法]二十一天好习惯 第一期-5

前言:

?又是复习基础算法的一天,所谓“基础不牢。地动山摇”,本文作者因为长达近一年时间没打过代码,决定从头开始,几乎从0开始学C语言。话不多说先进入每日一题环节

题目:

向一个有序数组中插入数字时其仍然有序。现有已排好序的数组,从键盘输入一个数,将这个数插入有序数组的对应位置,要求按原来的规律将它插入数组中,插入完成后数组仍然有序。

解析:

思路清晰,先看题干(先默认数组为升序,降序同理), 已知排好序的数组(可以是手动输入的)这里建议初始化时直接输入好,这里的难点时插入数据有多种情况,分别如下

情况一:插入的数在大小在数组的中间,这种是绝大部分情况,只要从数组头开始比较找到第一个比插入的数要大的数,之后从后往前移就行了

情况二:插入的数大小大于数组中的所有数,这种是最简单的情况,直接放在数组末尾然后输出就行了,无需分析doge(手动狗头)

情况三:插入的数据小于数组中的所有数,这种也简单,所有数组中的数往后移一位然后插入数组头就行了

情况四:插入的数据等于数组中的某个数,这种其实最容易遗漏,但难度不大,只要在情况一判断时加个等于号‘=’就行了

算法实现:

若按照解析的四种情况分别列出代码实在太耗费时间,但只要稍加观察可以发现,这四种情况本质实际相同都是数据的比较,我们可以把要插入的数据先放在数组末尾,再从后往前一个一个去比较,如果数组里的数大于插入数据则互换,则可以轻松解决问题

代码实现:

#include <stdio.h>
int main(){
    int a[10] = {1,2,3,4,8,9,10,20,30},i,s;//默认为升序 
    scanf("%d",&s);
    a[9] = s;
    printf("插入之前的数组为:");
    for(i=0;i<10;i++) printf("%d ",a[i]);
    printf("\n"); 
    for(i=8;i>=0&&s<a[i];i--){
	int temp = a[i+1];
	a[i+1] = a[i];
	a[i] = temp;
 }
    printf("插入之后的数组为:");
    for(i=0;i<10;i++) printf("%d ",a[i]); 
return 0;
}

小结:

这样一来,本题就完成了,由于本人水平太菜,当时分情况打出来的代码十分冗余复杂,这里不做展示了。今后可能会出备战2021蓝桥杯的题目资源分享(花费我200多大洋买的课不能不听啊)今天的分享先到这里,明天准时更新。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:36:28  更:2021-10-28 12:37:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:02:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码