一、冒泡排序算法个人理解
- 主要是以两个形成嵌套的for循环来完成的。外层的for循环以索引ix的值来逐个访问序列中的每个元素,ix的值由0开始增加到size(sequence) - 1,当外部的for循环迭代完成后,由ix索引取出的元素已经被放在正确的位置上了。放元素的操作是由内层的for循环来实现的,内层for循环的索引的值jx从ix+1依次递增到size(sequence) - 1为止,它比较位于ix和jx上的两个元素,如果jx上的元素较小,就将两个元素互换。具体排序过程见下图:
二、冒泡排序算法代码实现(C++版本)
#include "iostream"
using namespace std;
void bubleSort(int * a, int n);
int main(){
int ix;
int a[] = {8, 34, 3, 13, 1, 21, 5, 2};
int a_length = (sizeof(a)) / (sizeof(a[0]));
cout << "冒泡排序前:";
for (int ix = 0; ix < a_length; ix++)
cout << a[ix] << " ";
cout << endl;
bubleSort(a, a_length);
cout << "冒泡排序后:";
for (int ix = 0; ix < a_length; ix++)
cout << a[ix] << " ";
cout << endl;
return 0;
}
void bubleSort(int * a, int n){ // int * a;定义一个数组指针,方便从主函数传入一个变化长度的数组
int ix, jx, temp;
for (int ix=0; ix < n; ix++){
for (jx=ix+1; jx < n; jx++){
if (a[jx] < a[ix]){
temp = a[jx];
a[jx] = a[ix];
a[ix] = temp;
}
}
}
}
三、结果
