正常的冒泡排序和选择排序是这样的
- #include
-
- using namespace std;
-
- int main() {
-
-
- int arr[] = { 3,24,8,23,1,9,10,56,42,6,17 };
-
- int size = sizeof(arr) / sizeof(arr[0]);
-
- //冒泡排序
- for (int i = 0; i < size; i++){
- for (int j = 0; j < size - i - 1; j++) {
- if (arr[j + 1] < arr[j]) {
- int temp = arr[j ];
- arr[j ] = arr[j+1];
- arr[j+1] = temp;
- }
- }
- }
-
- for (int num : arr) {
- cout << num << endl;
- }
-
- cout<<"=================================" << endl;
-
- //选择排序
- for (int i = 0; i < size; i++)
- {
- for (int j = i + 1; j < size; j++) {
- if (arr[j] < arr[i]) {
- int temp = arr[j];
- arr[j] = arr[i];
- arr[i] = temp;
- }
- }
- }
-
- for (int num : arr) {
- cout << num << endl;
- }
-
- }
改动一下,循环一次直接输出当前数组的最大值和最小值
冒泡排序。
- int a;
-
- int arr[] = { 3,24,8,23,1,9,10,56,42,6,17 };
-
- int size = sizeof(arr) / sizeof(arr[0]);
-
- for (int j = 0; j < size - 1; j++) {
- //循环一次,>号 把最小的放到最后一个
- //循环一次,<号 把最大的放到最后一个
- if (arr[j + 1] < arr[j]) {
- int temp = arr[j ];
- arr[j ] = arr[j+1];
- arr[j+1] = temp;
- }
- //冒泡排序针对把最大或者最小的数往最后一个下标移动。所以打印 size-1
- a = arr[size-1];
- }
-
-
- int b;
-
- int arr[] = { 3,24,8,23,1,9,10,56,42,6,17 };
-
- int size = sizeof(arr) / sizeof(arr[0]);
-
- for (int j = 1 ; j < size; j++) {
- //循环一次,>号 把最大的放到最后一个
- //循环一次,<号 把最小的放到最后一个
- if (arr[j] > arr[0]) { //>--56 <--1
- int temp = arr[j];
- arr[j] = arr[0];
- arr[0] = temp;
- }
- //选择排序针对把最大或者最小的数往第一个下标移动。所以打印 0
- b = arr[0];
- }
- cout << b << endl;