c笔记(3):整数冒泡排序、简单选择排序

文章展示了如何使用C语言编程实现两种基本排序算法:冒泡排序和简单选择排序,均按照从小到大的顺序排列数组元素。在冒泡排序中,通过两层循环不断比较并交换相邻元素;而在简单选择排序中,每次选取当前未排序部分的最小元素与前一个已排序元素交换位置。每轮排序后,程序都会打印出当前的数组状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、整数冒泡排序(从小到大):

#include <stdio.h>
int main()
{
	int array[] = {7, 15, 2, 9, 6};
	// 从小到大冒泡排序
	int size = sizeof(array) / sizeof(array[0]); // 数据长度
	int sizing = size; //嵌套内循环,数据交换次数
	int i = 0;
	int j = 0;
	int k = 0;
	int temp; //交换中间值
	
	// 思路
	// 第一个数和第二个数比,大的往后交换,最后一位为最大值,交换sizing - 1次(嵌套内循环)。
	// 数据交换次数减1,重复执行上一步循环,一共执行size- 1 次 (嵌套外循环)
	
	for( j = 0; j < size - 1; j++)//嵌套外循环
	{
		for( i = 0; i < sizing - 1 ; i++)//嵌套内循环
		{
			if(array[i] > array[i + 1])
			{
				 temp = array[i];
				 array[i] = array[i + 1];
				 array[i + 1] = temp; 
				 
				puts("冒泡从小到大排序:");
				for(k = 0; k < size; k++) //打印此时数组所有数据情况
				{
					printf("%d ",array[k]);
				}
				printf("\n");
			}
		}
		sizing--; // 嵌套内循环,数据交换次数 - 1
	}
	

	return 0;
		
}

输出结果:

二、简单选择排序(从小到大):

#include <stdio.h>

int main()
{
	int array[] = {10, 6, 12, 2, 1};
	int size = sizeof(array) / sizeof(array[0]); // 数组长度
	// 简单选择排序法(从小到大)
	// array[j]和数组后面直到array[size - 1]全部比较一遍,一共比较交换size -(j+1) 次  (嵌套内循环),第一个数为最大数
	// 每次用来和别人比较的主数据为array[j],j每次经过内循环就加一(嵌套外循环)
	
	int i,j,k;
	int tmp;// 交换中间变量
	
	for(j = 0; j < size - 1; j++) //循环外嵌套
	{
		for(i = j + 1; i < size; i++) //循环内嵌套,//i = j + 1表示每固定一个数, i变大一个数也代表着交换次数 - 1
		{
			if(array[j] > array[i])
			{
				tmp = array[i];
				array[i] = array[j];
				array[j] = tmp;
				
				puts("简单选择排序法(从小到大):");
				for(k = 0; k < size; k++) // 打印数组所有数据
				{
					printf("%d ", array[k]);
					
				}
				printf("\n");
			}
		}
		
	}
	
	
	return 0;
}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值