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 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言初级】冒泡升序排序详解 -> 正文阅读

[C++知识库]【C语言初级】冒泡升序排序详解

如果我们有 {9 ,8,7,6,5}的数组需要冒泡升序排序

第一步我们先构思画图 画图进行冒泡排序

第二步:如图 如果要进行 数组冒泡排序的话 不难发现 趟数和数组是有关系的,例如: 数组个数5-1趟 等于 ④ 趟? ? ?n(数组个数)? ? n-1(趟)?

那么我们就可以得到如下代码计算趟数:

int arr[]={9,8,7,6,5};

int sz = sizeof(arr)/sizeof(arr[]);//计算元素个数

for(int i =0;i<sz-1;i++)//确定趟数    //sz-1===需要数组个数5-1趟 等于 ④ 趟
{


}

第三步我们知道了趟数后 接下来就要来研究 每一趟在干嘛

if arr[0]>arr[0+1] 如果第一个元素大于了? ?第二个元素的话 那么应该进行互换 如果想把接下来的每一个元素都按照条件互换则需要用到for循环

得到以下代码:

//int arr[]={9,8,7,6,5};


for (int j = 0; j<暂时不写条件我们来后面分析; j++)
{

	if (arr[j]>arr[j + 1])    //如果元素大于了 第二个元素的话 进行互换
	{
		int tep = arr[j];
		arr[j] = arr[j + 1];
		arr[j + 1] = tep;
	}

}

第四步分析//(j<的条件):参考最前面第一个图? 不难发现? 每一趟里面交换的次数 是 数组个数-本次趟速-1;? 一开始 趟数 i=0? &&i<4? ?所以第一趟内部循环{5-0-1} 次? ?第二趟内部循环{5-1-1} 次??第三趟内部循环{5-2-1} 次? ? ?第四趟内部循环{5-3-1} 次? ? ? ?

得到以下j<条件

for (int j = 0; j <	sz-i-1	; j++)

综上所述:得到完整代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void abl(int arr[], int sz)
{

	for (int  i = 0; i < sz-1; i++)
	{
		for (int j = 0; j <	sz-1-i	; j++)
		{
			if (arr[j]>arr[j+1])
			{
				int tap = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tap;
			}
		}

	}

}
int main()
{
	int arr[] = { 9, 8, 7, 6,5};
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("数组个数是 %d   \n", sz);
	abl(arr, sz);
	printf("冒泡升序排序后:");
	for (int i = 0; i < sz; i++)
	{
		printf("%d  ", arr[i]);
	}
	return 0;
}

运行结果:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 13:42:06  更:2022-01-01 13:44:17 
 
开发: 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/24 10:49:20-

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