冒泡排序(Bubble Sort)
1.1 算法描述
冒泡排序是一种简单的排序,它是通过重复两个元素之间的数据大小比较后调整它们的位置来实现的。冒泡排序的复杂程度是和所需要进行对比的数据量成正比的。所欲它的时间复杂度为O(n^2),空间复杂度为O(1),并且它的稳定性好。
1.2 动态图演示
它的实际运行是通过两个数之间相互比较大小,然后交换位置,除了最后一个不用进行比较(因为已经到达数组的末尾没有比较的对象了)
1.3代码实现
请大家在学习的时候不要只是关注代码的本身,我们应该从它的原理中去考虑清楚排序的过程
//这个是冒泡排序的核心代码
void bubbleSort(int *arr, int size)
{
for(int i=0;i<size-1;i++)//这里小于size-1是因为最后一个不需要比较,为了节省时间我们可以以直接将他不做比较
{
for(int j=0;j<size-1;i++)
{
if(arr[j]>arr[j+1])
{
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}