#include<iostream>voidtest(){// 我的表达int arr[8]={4,3,2,7,8,2,3,1};for(int i =0; i <sizeof(arr)/sizeof(arr[0]); i++){if(arr[i]<0){if(arr[(-arr[i])-1]<0){continue;}
arr[(-arr[i])-1]=-arr[(-arr[i])-1];}else{if(arr[(arr[i])-1]<0){continue;}
arr[arr[i]-1]=-arr[arr[i]-1];}}for(int i =0; i <sizeof(arr)/sizeof(arr[0]); i++){if(arr[i]>0){
std::cout<<i +1<<" ";}}
std::cout<<std::endl;}voidtest01(){// 改进int arr[8]={4,3,2,7,8,2,3,1};for(int i =0; i <sizeof(arr)/sizeof(arr[0]); i++){int x = arr[i]>=0? arr[i]:-arr[i];// 三目运算符if(arr[x -1]>0){
arr[x-1]=-arr[x -1];}}for(int i =0; i <sizeof(arr)/sizeof(arr[0]); i++){/* code */if(arr[i]>0){
std::cout<<i +1<<" ";}}
std::cout<<std::endl;}intmain(void){test();test01();return0;}