数组冒泡排序

排序算法中的最常见的冒泡排序,简单容易理解,文章中带有冒泡排序的基本示意图,可参考示意图再参考代码学习分析。

2015-05-03_105333

#include <stdio.h>

int main(int argc, char* argv[])
{
	int arr[] = {5, 4, 3, 2, 1};
	// 计算数组有效元素个数
	int len = sizeof(arr) / sizeof(int);
	// 外循环,控制一共循环多少次
	for (int i =0; i < len - 1; i++)
	{
		// 内循环,控制没一个元素与其他元素比较的次数
		for (int j = 0; j < len - 1 - i; j++)
		{
			// 判断前一个元素是否大于后一个元素
			if (arr[j] > arr[j + 1])
			{
				// 位运算方式交换数据
				arr[j] = arr[j] ^ arr[j + 1];
				arr[j + 1] = arr[j] ^ arr[j + 1];
				arr[j] = arr[j] ^ arr[j + 1];
			}
		}
	}

	// 遍历打印数组元素
	for (int i = 0; i < len; i++)
	{
		printf("%d ", arr[i]);
	}
	putchar(10);
	return 0;
}

 

说说你的想法