冒泡排序算法伪代码
//冒泡排序
BUBBLE_SORT(A)
{
for i = length[A] to 2
{
for j = 1 to i-1
{
if A[j] > A[j+1]
{
exchange A[j] and A[j+1];
}
}
}
}
用冒泡排序算法对数组arr[10] = {8, 5, 10, 12, 7, 6, 15, 9, 11, 3};从小到大排序。
//冒泡排序
void bubbleSort(int *arr, int n) {
int flag = 1;//标记一次遍历没有发生移位,排序完毕
if (arr == NULL || n == 0) {
return;
}
for (int i = n - 1; i >= 1 && flag; --i) {
flag = 0;
for (int j = 0; j < i; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
if (flag == 0) {
flag = 1;//排序完成
}
}
}
}
}