冒泡排序
冒泡排序算法名字的由来是因为越小的元素经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。其实质是把小(大)的元素往前(后)调。
算法步骤
以把大的元素往后调的比较方法为例:
- 从前到后,依次比较相邻两元素。若第一个元素比第二个元素大,就交换他们的位置;
- 比较交换了所有元素后,最大的数将是最后的元素,该元素不再参与新一轮的冒泡比较;
- 除去每一轮确定的最大元素外,剩余元素重复上述过程,直到没有元素需要比较。
算法描述
//arrPtr为指向数组的指针,arrLen为数组长度
void bubble_sort(int* arrPtr, int arrLen)
{
if (!arrPtr)
return;
for (int i = arrLen - 1; i > 0; --i)
{
for