栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

冒泡排序 (局部有序优化) 与 选择排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

冒泡排序 (局部有序优化) 与 选择排序

#include 
#include 

int a[7] = { 4,2,3,1,6,7,8 };
int b[7] = { 4,2,3,1,6,7,8 };

void bubble_sort(int* a, int len) // 优化版本的冒泡排序
{
	for (int end = len - 1; end > 0; end--)
	{
		int sortIndex = 1;
		for (int begin = 1; begin <= end; begin++)
		{
			if (a[begin] < a[begin - 1])
			{
				int b = a[begin];
				a[begin] = a[begin - 1];
				a[begin - 1] = b;
				sortIndex = begin;
			}
		}
		end = sortIndex;
	}

	for (int i = 0; i < len; i++)
	{
		printf("%d_", a[i]);
	}
	printf("n");

}

void selset_sort(int* a, int len) // 选择排序,每一轮将最大数字与该轮的最后一个位置交换
{
	for (int end = len - 1; end > 0; end--)
	{
		int maxindex = 0;
		for (int begin = 1; begin <= end; begin++)
		{
			if (a[maxindex] <= a[begin])// 存在数字比 maxindex 那个数字大,则记录下标 
			{
				maxindex = begin;
			}
		}

		int temp = a[maxindex];
		a[maxindex] = a[end];
		a[end] = temp;
	}
	for (int i = 0; i < len; i++)
	{
		printf("%d_", a[i]);
	}
}

int main(int argc, char** argv)
{
	bubble_sort(a, sizeof(a) / sizeof(a[0]));
	selset_sort(b, sizeof(b) / sizeof(b[0]));
    return 1;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号