/*优化后的选择排序,比较次数不变的前提下减少交换次数*/voidselectsort(int arr[],int n){
int index, i, j;for(i =0; i < n -1; i++){
index = i;for(j = i +1; j < n; j++){
if(arr[index]> arr[j])//找到比参照值小的元素的下标{
index = j;//将下标赋值给索引}}if(index != i)//只有当索引不等于参照值下标时才交换{
arr[i]^= arr[index];
arr[index]^= arr[i];
arr[i]^= arr[index];}}}
/*优化后的冒泡排序*/voidpopsort(int arr[],int n){
int i, j, flag;for(i =0; i < n -1; i++){
flag =0;for(j =0; j < n - i -1; j++){
if(arr[j]> arr[j +1]){
arr[j]^= arr[j +1];
arr[j +1]^= arr[j];
arr[j]^= arr[j +1];
flag =1;}}if(flag =0)break;}}