`

C++数组进阶——一维数组的应用及起泡法思路

 
阅读更多

C++复习——数组

一、相关概念

1、具有相同属性有内在联系的一批数据看作一个有机的整体,称为数组

2、数组中用序号或下表来区分各个数据,用来表示该数据在数中的序号,称为下标(数组元素的标识符);数组中的数据称为数组元素

3、引用数组的好处:引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系。许多好的算法都与数组有关。熟练地利用数组,可以大大地提高编程和解题的效率,加强了程序的可读性。

二、一维数组的定义和引用

1、定义格式:

类型标识符 数组名[常量表达式]

例如:inta[10]

说明:数组名定名规则和变量名相同,遵循标识符定名规则。

用方括号括起来的常量表达式表示下标值。

2、常量表达式的值表示元素的个数,即数组长度。下标从0开始。

3、常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说C++不允许对数组的大小作动态定义。

4、数组必须先定义后使用!

5、数组元素的表示形式:数组名[下标]

6、一维数组的初始化:

a、inta[10]={0,1,2,3,4,5,6,7,8,9};

b、可以只给一部分元素赋值:

int a[10]={0,1,2,3,4}只定义前五个元素,后五个元素默认为0;

c、在对全部数组元素赋初始值时,可以不指定数组长度:int a[]={1,2,3,4,5};

三、一维数组的应用

1、起泡法排序:

起泡法的思路是:将相邻两个数比较,将小的调到前头。若有6个数(8,9,5,4,2,0)第一次比较第1和第2(8和9)的大小,如果第1个数大于第2个数,就把第2个数位置交换,第二次将第二和第三个数(9和5)交换……如此共进行5次,得到8,5,4,2,0,9的顺序。可以看到:最大的数9已经沉底,小数上升。

然后对余下的前五个数按上法进行比较,经过四次比较,得到次大的数8。再进行第三趟比较,对余下的四个数进行比较。不难看出,对6个数进行比较交换需要五次才能排好,第一趟两数交换五次,第二趟四次……

总结:如果有N个数,要进行N-1次比较交换,在第一趟中要进行N-1次两两比较,在第j趟中要进行N-j次两两比较。

试题:设n=10,即数组长度为11,a[0]不用,只用a[1]~a[10],可知需要进行9躺比较交换。

代码如下:

 

/*

* example.cpp

*

* Created on: 2012-3-30

* Author: yangbo_hbzjk

*/

 

#include <iostream>

using namespace std;

 

int main()

{

int a[11];

int i,j,t;

cout<<"input 10 numbers:"<<endl;

for(i=1;i<11;i++) // 输入a[1]~a[10]

{

cin>>a[i];

cout<<endl;

for(j=1;j<=9;j++)

{

for(i=1;i<=10-j;i++)

{

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

}

}

}

}

cout<<"the sorted numbers:"<<endl;

for(i=1;i<11;i++)

{

cout<<a[i]<<"";

cout<<endl;

return 0;

}

 

 

分享到:
评论

相关推荐

    C++一维数组二维数组写入txt,从txt中读取数据存到一维数组二维数组

    本教程将重点讲解如何使用C++将一维和二维数组的数据写入文本文件(txt),以及如何从txt文件中读取数据并存储到一维和二维数组中。数组在C++中是基本的数据结构,而指针则为动态操作提供了便利。以下是一些关键知识...

    C++ 数组 多维数组 -- 二维数组

    今天,我们将学习 C++ 中的数组,包括一维数组和多维数组。 首先,让我们来了解数组的概念和定义。数组是一组数据类型相同的、按顺序排列的数据,它在内存中占有相邻的一批内存单元。每个数据称为“数组元素”。...

    c++数组练习题

    c++数组练习题及答案。本套练习题包含了数组的各方面知识,题型包括判断题 填空题,编程题等

    C++两个一维数组相加求和

    本问题主要探讨了如何在C++中实现两个一维数组的相加求和。下面将详细阐述这一过程及其涉及的关键知识点。 首先,我们创建了两个一维整型数组`arr1`和`arr2`,分别初始化为`{1, 2, 3, 4, 5}`和`{6, 7, 8, 9, 10}`。...

    C++数组名扩展

    c++数组方面的知识,不错的函数;可以参考着用

    C++数组,起泡法,选择法,从小到大排序

    数组,起泡法,选择法,从小到大排序C++数组,起泡法,选择法,从小到大排序C++数组,起泡法,选择法,从小到大排序C++数组,起泡法,选择法,从小到大排序C++数组,起泡法,选择法,从小到大排序

    c++数组降维程序

    C++中的多维数组是由多个一维数组嵌套组成的。例如,在题目中给定的示例中,`sg[3][4]`表示一个3行4列的二维整型数组。每个元素可以通过两个下标访问,如`sg[1][2]`表示第二行第三列的元素。 #### 三、降维处理:将...

    c++数组实例(有代码)

    在 C++ 中,数组可以分为一维数组和二维数组,一维数组用于存储一组相同类型的元素,而二维数组用于存储一个矩阵。 在第一个实例中,程序使用一个函数来将一个数组的值逆序存储。该函数使用了指针来传递数组,并...

    c++二维数组ppt资源

    C++二维数组是数组的一种扩展形式,相比一维数组,它可以存储更多的数据,并且提供了更多的操作方式。二维数组的定义和使用与一维数组类似,但它具有更多的维度和灵活性。 二维数组的定义 二维数组的定义格式为:...

    关于C++信息学竞赛一维数组及其应用52个源文件及试题

    例5.3 一维数组输入n个数,计算所有元素的和,求出最大的元素和最小的元素 1 利用for循环,计算输出1+2+…+100的和 2 输出1—100之间所有偶数。 3 输出1—100之间所有奇数。 4 分别计算1--100之间所有的偶数和、...

    JNA调用C++动态库,传入二维数组,通过C++返回二维数组,java调用C++完整案例

    在C++中,你可能需要提供一个辅助函数来处理Java传递过来的一维数组,转换为C++的二维数组格式。 此外,对于大型数据结构,考虑到性能问题,可能需要考虑使用直接内存映射(Direct Memory Mapping)或者自定义类型...

    c++动态数组申请(包括一维,二维的)

    1. 使用`new`运算符:在C++中,我们通常通过`new`运算符来申请一维动态数组。例如,如果我们想创建一个大小为n的一维整数数组,可以这样写: ```cpp int *arr = new int[n]; ``` 这段代码会在堆上分配大小为n个...

    c++初始数组教程视频

    c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程c++数组教程...

    一维数组题目8道题带答案

    在这个“一维数组题目8道题带答案”资源中,我们可以期待找到一系列与一维数组相关的练习题,旨在帮助学习者理解和熟练掌握在Unity C#环境中操作数组的技巧。 1. **数组的基本概念**: - 一维数组是线性数据结构,...

    C++数组的学习笔记(入门).docx

    在C++中,数组可以分为一维数组、二维数组和字符数组等。本文将对C++数组的定义、初始化和引用进行详细的介绍。 一维数组 一维数组的定义格式为:type arrayName [ arraySize ];其中,type是数组元素的数据类型,...

    Matlab数组操作进阶:扩维与构造(源码).rar

    1、资源内容:Matlab数组操作进阶:扩维与构造(源码).rar 2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 3、适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业...

    多维数组转一维数组 基于c语言的数据结构程序设计

    多维数组可以被视为多个一维数组的嵌套,而将多维数组转换为一维数组可以使数据处理更加简单且效率更高。 在这个课程设计中,目标是实现一个C语言程序,该程序首先接收用户输入的数据来构建一个4维数组,然后按照...

    c++return返回二维数组

    在c++中,经常调用函数,而子函数经常要返回的值是数组,无论一维数组还是二维数组都需要运用到指针的知识。一维数组不再过多叙述,给了一个实例如何返回二维数组,希望对大家有帮助(主要用到指针的知识,看不懂的...

    【源代码】C++算法(五)一维数组去重(复杂度为n且不新开辟空间)

    在本篇【源代码】C++算法中,我们主要探讨的是如何在一维数组中去除重复元素,同时确保算法的时间复杂度为O(n),并且在整个处理过程中不额外开辟新的内存空间。这种问题在实际编程中非常常见,特别是在处理大量数据...

    图书销售管理系统——贯穿实例之数组应用实验说明

    ### 图书销售管理系统——贯穿实例之数组应用实验说明 #### 实验内容概述 本实验旨在通过设计一个小型的图书销售管理系统来实现对图书信息的基本管理功能。这些功能主要包括:添加图书、显示图书信息、查找图书、...

Global site tag (gtag.js) - Google Analytics