编程基础考试复习笔记6-9章

这篇博客主要讲解了C++编程的基础知识,包括多文件结构的组织形式,数组的运算顺序及冒泡排序算法,深入探讨了指针和引用的概念及其应用,如动态内存管理和函数参数传递。此外,还介绍了结构体和链表在解决约瑟环问题中的应用。
摘要由CSDN通过智能技术生成

 

 

 

 第六章多文件(>=3)结构

注意引用first.h头文件时的格式:#include"first.h

头文件h1里面只需要放cpp1函数声明,其他什么都不需要

cpp1文件里面放模板程序,引用头文件h1

cpp2里面放main函数

多文件结构主要是追求代码重用,其他文件中都可以再次使用已定义的函数

第七章数组

数组运算顺序图

注意,下标也是一次运算,二维数组本身就需要两次运算

初始化一个四行三列的数组示例

int a[4][3]=

{

{1,1,1},

{2,2,2},

{3,3,3},

{4,4,4}

}

冒泡排序

外循环从i=1到i<=n-1,因为最后一个元素下标是n,如果是n,n+1越界

内循环是j=1到j<=n-i,表示每一轮进行的次数,因为每一轮结束后,后i个都完成了排序,所以j<=n-i,难以理解就带入实际情况思考

//最初版本
#include<iostream>
using namespace std;

int a[100], n;

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	for (int i = 1; i <= n - 1; i++)
	{
		for (int j = 1; j <= n - i; j++)
			if (a[j] > a[j + 1])
				swap(a[j], a[j + 1]);
	}
	for (int i = 1; i <= n; i++)
		cout << a[i] << " ";
}

初版冒泡排序缺点:会认真地、一丝不苟地执行每一轮,即使中途就全部排好序 ,简称:过于死板

so,这是改良版,当排序到这一轮,都没有变化时,宝贝,你已经是一个成熟的数组啦,你已经毕业啦,快滚犊子吧

//改良
#include<iostream>
using namespace std;
void bubble_sort(int arr[], int len)
{
	int change = 1;
	for (int i = 0; i < len - 1 && change != 0; i++)
	{
		change = 0;
		for (int j = 0; j < len - 1 - i; j++)
			if (arr[j] > arr[j + 1])
			{
				swap(arr[j], arr[j + 1]);
				change = 1;
			}
	}
}
int main() {
	int a[7] = { 3,6,4,2,11,10,5 };
	bubble_sort(a, 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值