冒泡排序
Posted 追风弧箭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。
1、冒泡排序
对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序
冒泡排序算法的运作如下:
. 比较相邻的元素。如果第一个比第二个大就交换它们。
- 对每一对相邻的元素做同样的工作,从开始第一对到结尾的最后一对。这时候最后的元素应该会是最大的数
- 针对所有的元素重复以上步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
图解:
void my_swap(int &x, int &y)
int t = x;
x = y;
y = t;
void sort(int arry[],int nlen)
for (int i = 0; i < nlen-1; i++)
bool flag = false; //标记是否发生交换,如果没有发生交换则已经是有序的了,退出循环
for (int j = 0; j < nlen - i - 1; j++)
if (arry[j] > arry[j + 1])
my_swap(arry[j], arry[j + 1]);
flag = true;
if(!flag)
break;
以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章