算法之冒泡排序

本博客只是單純的冒泡算法,沒有對其進行優化;這裏就不敘述思路了,直接開始代碼:

#include<stdio.h>

void Swap(int*a, int*b) //交換函數
{
	int tmp = 0;
	tmp = *a;
	*a = *b;
	*b = tmp;
}

void BubbleSort(int* arr, int len)  //冒泡排序
{
	int i;
	int j;
	for (i = 0; i < len - 1; i++)
	{
		for (j = 0; j < len - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				Swap(&arr[j], &arr[j + 1]);
			}
		}
	}
}

測試用例:

int main()
{
	int arr[] = { 2, 3, 4, 5, 1, 9, 0, 8, 7, 6 };
	//int arr[] = {1,2,3,4,5,6,7,8,9,10};
	//int arr[] = {10,9,8,7,6,5,4,3,2,1};
	int len = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i <= len - 1; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	BubbleSort(arr, len);
	for (int i = 0; i <= len - 1; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

測試成果:
在這裏插入圖片描述

發佈了52 篇原創文章 · 獲贊 103 · 訪問量 4106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章