演示結果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;
}