1.首先搜看一下冒泡排序的gif动态图
2.自己再抛开动态图,在白纸上画一遍
原始待排序数组| 7 | 2 | 3 | 1 | 4 |
第一趟排序(外循环)
第一次两两比较7> 2交换(内循环)
交换前状态| 7 | 2 | 3 | 1 | 4 |
交换后状态| 2 | 7 | 3 | 1 | 4 |
第二次两两比较,7 > 3交换(内循环)
交换前状态| 2 | 7 | 3 | 1 | 4 |
交换后状态| 2 | 3| 7 | 1 | 4 |
第三次两两比较,7 > 1交换
交换前状态| 2 | 3| 7 | 1 | 4 |
交换后状态| 2 | 3| 1 | 7| 4 |
第四次两两比较,7 > 4交换
交换前状态| 2 | 3| 1 | 7| 4 |
交换后状态| 2 | 3| 1 | 4| 7 |
第二趟排序(外循环)
第一次两两比较2 < 3不交换
交换前状态| 2 | 3| 1 | 4| 7 |
交换后状态| 2 | 3| 1 | 4| 7 |
第一次两两比较3 >1交换
交换前状态| 2 | 3| 1| 4| 7 |
交换后状态| 2 | 1| 3| 4| 7 |
第一次两两比较3 < 4不交换
交换前状态| 2 | 1| 3| 4| 7 |
交换后状态| 2 | 1| 3| 4| 7 |
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换前状态| 2 | 1| 3| 4| 7 |
交换后状态| 1 | 2| 3| 4| 7 |
排序完毕,输出最终结果1 2 3 4 7
3.在loadrunner中的代码实现
int Action2(int argc, char *argv[])
{
int a[10]={
-999,2,3,77,12,88,0,-8,99,100
};
int i=0;
sort(a,10);
for(i=0;i<10;i++)
{
lr_output_message("%d ",a[i]);
}
return 0;
}
void sort(int *a,int len)
{int i=0;
int j;
int t;
for(i=0;i<len;i++)
{
for(j=0;j<len-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
运行结果:
Starting action Action2.
Action2.c(10): -999
Action2.c(10): -8
Action2.c(10): 0
Action2.c(10): 2
Action2.c(10): 3
Action2.c(10): 12
Action2.c(10): 77
Action2.c(10): 88
Action2.c(10): 99
Action2.c(10): 100
Ending action Action2.