1、逆置排序
?? ?int arr[] = { 12,34,56,54,89 }; ?? ?int star = 0; //先定义好数组起始位置 ?? ?int end = sizeof(arr) / sizeof(arr[0]) - 1 ; //与数组的长度 ?? ?while (star < end) ?? ?{ ?? ??? ?int tmp = arr[star]; ?? ??? ?arr[star] = arr[end]; ?? ??? ?arr[end] = tmp; ?? ??? ?star++; ?? ??? ?end--; ?? ?}
2、冒泡排序
先计算数组长度;
?? ?int arr[] = { 12,34,56,54,89,59,63 }; ?? ?int len = sizeof(arr) / sizeof(arr[0]);
直接排序
?? ?for (int i = 0; i < len - 1; i++) //第一个for决定要进行对比的数字个数 ?? ?{ ?? ??? ?for (int j = 0; j < len - 1 - i; j++) //第二个for决定一个数进行对比的轮数 ?? ??? ?{ ?? ??? ??? ?if (arr[j] > arr[j + 1]) ?? ??? ??? ?{ ?? ??? ??? ??? ?int tmp = arr[j]; ?? ??? ??? ??? ?arr[j] = arr[j + 1]; ?? ??? ??? ??? ?arr[j + 1] = tmp; ?? ??? ??? ?} ?? ??? ?} ?? ?}
3、值传递
- 所谓值传递,就是函数调用时实参将数值传入给形参
- 值传递时,如果形参发生,并不会影响实参
- void swap(int num1, int num2)
{ ?? ?cout << "交换前:" << endl; ?? ?cout << "num1 = " << num1 << endl; ?? ?cout << "num2 = " << num2 << endl; ? ?? ?int temp = num1; ?? ?num1 = num2; ?? ?num2 = temp; ? ?? ?cout << "交换后:" << endl; ?? ?cout << "num1 = " << num1 << endl; ?? ?cout << "num2 = " << num2 << endl; ? ?? ?//return ; 当函数声明时候,不需要返回值,可以不写return } ? int main() { ? ?? ?int a = 10; ?? ?int b = 20; ? ?? ?swap(a, b); ? ?? ?cout << "mian中的 a = " << a << endl; // a=20; ?? ?cout << "mian中的 b = " << b << endl; //b=10;即值传递时,如果形参发生,并不会影响实参 ? ?? ?system("pause"); ? ?? ?return 0; }
|