首页 > 其他分享 >冒泡排序

冒泡排序

时间:2024-01-24 12:32:50浏览次数:29  
标签:sz arr int 冒泡排序 ++ 排序

冒泡排序

//e.g.设计一个函数实现冒泡排序,将一个整型数组排序

void Bubble_Sort(int* arr, int sz)
//arr是数组,对数组传参,传的是首元素地址&arr[0]
{
	//确定bubble排序的趟数
	int i = 0;
	int count = 0;
	for (i = 0; i < sz - 1; i++)
	{
		int flag = 1;
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = 0;
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				flag = 0;
				//本趟排序的数据不完全有序,进行交换
				count++;
			}			
		}
		if (flag == 1)//有序,跳出循环,冒泡结束
			break;
	}
	printf("共排序%d次\n", count);
	
}

int main()
{
	//int arr[] = { 9,8,7,6,4,5,3,2,1 };//36
	int arr[] = { 1,2,3,4,5,6,7,8,9 };//36
	int i = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	
	//对数组进行升序排序
	Bubble_Sort(arr, sz);
	
	for (i = 0; i < sz; i++)
		printf("%d ", arr[i]);

	printf("\12");
	return 0;
}

标签:sz,arr,int,冒泡排序,++,排序
From: https://blog.51cto.com/u_16287559/9393996

相关文章

  • 用Java实现冒泡排序:实用教程带你入门
    在处理一些特定系统功能时,经常需要使用冒泡排序。例如,在一个电子商务网站中,需要对商品进行排序和过滤。这个时候可以使用冒泡排序对商品进行排序,以便用户能够按照价格、销量、评分等不同字段进行排序。通过使用冒泡排序,系统可以提供更加灵活和个性化的排序选项,以便用户能够更加方便......
  • 冒泡排序、选择排序、二分查找
    1publicstaticvoidmain(String[]args){2//冒泡排序3//定义一个数组,存储一些数据4int[]arr={5,3,1,2,9,6};5System.out.println("=========冒泡排序==========");6//定义一个循环轮数7fo......
  • 冒泡排序初探
        冒泡排序是一种基于比较和交换操作的排序算法。每轮冒泡的过程都是从第一个元素开始,将该元素和相邻下一个元素进行比较和交换,使得较大的元素向右移动(如果该元素大于下一个元素,则两个元素交换;如果该元素小于等于下一个元素,则保持不变)。这样一来,每轮冒泡的过程都可以确定......
  • 时间复杂度(常数循环、strchr、冒泡排序、二分查找)
    1.1常数循环//计算复杂度voidFunc4(intk){intcount=0;for(intk=0;k<100;++k){++count;}printf("%d\n",count);}时间复杂度为:O(1)  注:O(1)不是代表算法只能运行一次,是常数次1.2strchr的时间复杂度//计算strchar的时间复杂度constchar*strchr(constc......
  • STM32采集传感器数据通过冒泡排序取稳定值
    STM32采集传感器数据通过冒泡排序取稳定值一、前言在物联网、单片机开发中,经常需要采集各种传感器的数据。比如:温度、湿度、MQ2、MQ3、MQ4等等传感器数据。这些数据采集过程中可能有波动,偶尔不稳定,为了得到稳定的值,我们可以对数据多次采集,进行排序,去掉最大......
  • 【模版】冒泡排序
    刚学C++时书上就会写这个qwq属于最简单的排序算法惹。算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对......
  • 数据结构算法---冒泡排序
    冒泡排序(BubbleSort)是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻两个元素并按照大小交换位置,直到整个列表排序完成。这种排序算法得名于越小的元素会经由交换慢慢"浮"到列表的顶端。下面是冒泡排序的基本步骤:从列表的第一个元素开始,比较它与下一个元素的大小。如果......
  • java之冒泡排序
    冒泡排序原理:从第一个数开始,和后面一个数比较大小,根据升序或者降序,看是否需要互换位置。每一轮会把1个数罗列到正确位置,经过数组长度-1轮比较,排序完成。比如:对数组{11,55,33,22,44}进行升序排列数组长度是5,需要经过5-1轮,每一轮需要比较5-当前轮次。publicc......
  • 算法学习笔记二一冒泡排序
    目录什么是冒泡排序算法原理代码示例什么是冒泡排序​对给定数组进行遍历,每次比较相邻两个元素大小,若大的数值在前面则交换两数位置(升序),每完成一趟遍历数组中最大的元素都会上升到数组的末尾,这也是冒泡一词的由来。算法原理(升序)列表每相邻的数,如果前面比后面大,则交换这两个数......
  • 冒泡排序
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。第一次是对n个数进行n-1次比较,进行到最后第n个的一......