`
xitonga
  • 浏览: 586359 次
文章分类
社区版块
存档分类
最新评论

算法导论 之 冒泡排序[C语言]

 
阅读更多

一、算法实现

冒泡排序的时间复杂度为O(n^2),其实现代码如下:

int bubble_sort(int *array, int num)
{
	int i=0, j=0, idx=0, max=0;

	for(idx=1; idx<num; idx++)
	{
		array[0] = array[1]; /* array[0]为交换空间 */

		max = num-idx+1;
		for(j=2; j<max; j++)
		{
			if(array[j] > array[0])
			{
				array[j-1] = array[0];
				array[0] = array[j];
			}
			else
			{
				array[j-1] = array[j];
				array[j] = array[0];
			}
		}

		array[j-1] = array[0];
	}
	return 0;
}

二、函数调用

#define ARRAY_NUM (10)
int main(int argc, void *argv[])
{
	int idx=0;
	int array[ARRAY_NUM] = {0, 9, 8, 7, 6, 5, 4, 3, 2, 1};

	bubble_sort(array, ARRAY_NUM);

	for(idx=1; idx<ARRAY_NUM; idx++)
	{
		fprintf(stdout, "array[%d] = %d\n", idx, array[idx]);
	}

	return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics