演示結果1:
演示結果2:
示例代碼:
#include <iostream> void swap(int *,int *); void swap1(int *,int *); void function1(void); void displayIntArray(int *,int); void bubbleSort(int *,int); void function2(void); int main(int argc, char** argv) { //function1(); function2(); return 0; } /** 演示排序 */ void function2(void){ int array[10]={9,1,2,5,6,3,4,8,7,10}; printf("原來的數組: "); displayIntArray(array,10); bubbleSort(array,10); printf("排序後數組: "); displayIntArray(array,10); } /** 冒泡排序 */ void bubbleSort(int *array,int arrayLength){ for(int i = 0;i<arrayLength;i++){ for(int j = 1;j<arrayLength-i;j++){ if(array[j]<array[j-1]){ swap1(&array[j],&array[j-1]); } } } } /** 展示數組 */ void displayIntArray(int *a,int arrayLength){ for(int i = 0;i<arrayLength;i++){ printf("%d ",a[i]); /* 五個數字 換一行 if((i+1)%5==0){ printf("\n"); } */ } printf("\n"); } /** 演示換位 */ void function1(void){ int a = 0xffffffff; int b = 0xfffffffe; printf("a = %d,b = %d\n",a,b); swap1(&a,&b); printf("a = %d,b = %d\n",a,b); int c = 0x7fffffff; int d = 0x00000001; printf("c = %d,d = %d\n",c,d); swap1(&c,&d); printf("c = %d,d = %d\n",c,d); } /** 交換算法1 */ void swap(int *a,int *b){ int temp = *a; *a = *b; *b = temp; } /** 交換算法2 */ void swap1(int *a,int *b){//兩數之和大於0xffffffff 應該是也可以的。 *a = *a + *b;//10 9 *b = *a - *b;//10 1 *a = *a - *b; }