几种常见的排序算法

2025-12-05 16:49:03
推荐回答(1个)
回答1:

for(i = 0; i < n; i++) for(j = 0; j < n - 1 - i; j++){if(arr[j] arr[j + 1]){arr[j] = arr[j] ^ arr[j+1]; arr[j+1] = arr[j] ^ arr[j+1]; arr[j] = arr[j] ^ arr[j+1];}}} 交换两个数据,可以用用临时变量,也可用以下的两个方法a = a^b;b = a^b;a = a^b;或者 a = a + b;b = a - b;a = a - b;// 选择排序 void SelectSort(int arr[], int n){int i, j;int min; for(i = 0; i < n - 1; i++){int index = 0; min = arr[i]; for(j = i + 1; j < n; j++) //找出 i+1 - n 无序区的最小者与arr[i]交换{if(arr[j] < min){min = arr[j];index = j;}}if(index != 0) //表明无序区有比arr[i]小的元素{arr[i] = arr[i]^arr[index]; arr[index] = arr[i]^arr[index]; arr[i] = arr[i]^arr[index];}}}感觉比冒泡法好多啦 //快速排序算法