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.