“冒泡排序”算法

“冒泡排序”算法,第1张

冒泡排序是最常用的一种排序class="superseo">算法,具有明显的规则性。

定义:

        i —— 外循环次数;

        j —— 内循环次数;

算法流程:

(1)数据交换:比较相邻的两个元素( 即第 j 和 j+1个元素 ),如果第 j 个元素比第 j +1个元素大,则交换它们;

(2)内循环:对第 i 轮时的每一对相邻的两个元素重复步骤(1),经过一轮比较得到一个最大值,此最大值将位于本轮次( 第 i 轮)的最后一位。

(3)外循环:重复步骤(1)和步骤(2),每重复一次外循环的次数均减去1,直至排序完成。

示例:

	int arr[] = {13,22,45,74,25,18,15,33,19};//创建一个一维数组

	// 冒泡排序
	// 外部循环次数 = 元素个数 - 1 (这是规律,记住即可,读者也可自行推导) 
	for (int i = 0; i < sizeof(arr)/sizeof(arr[0]) - 1; i++) {
		
		// 内循环次数 = 元素个数 - 当前轮数 - 1(这是规律,记住即可,读者也可自行推导)
		for (int j = 0; j < sizeof(arr) / sizeof(arr[0]) - i - 1; j++) {
			
			if (arr[j] > arr[j + 1]) {

				// 三行的交换代码
				int temp = arr[j];    // 创建临时变量temp,用于保存元素arr[j]
				arr[j] = arr[j + 1];  // 使得arr[j] = arr[j + 1]
				arr[j + 1] = temp;    // 使得arr[j + 1] = temp,完成交换

			}
		}

	}
	cout << "排序后的结果为:"<< endl;
	for (int k = 0; k < sizeof(arr)/sizeof(arr[0]); k++) {
		cout << arr[k] << " ";
	}
	cout << endl;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/707502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存