int getRandom(int *list, int n)
{
 int k, signature = 0;
 for(k = 0 ; k < n ; k++) {
  list[k] = rand() % n ; /* generate a random number0 0에서 n까지 마구잡이로 넣어진다.  */
  signature ^= list[k];//배열값을 승으로 올리고 계산을 한다.
 }
 return signature;//반환값은 signature

int checkSortedData(int *list, int n, int signature)
{
 int k, new_signature = 0;
 
 for(k = 0 ; k < n-1 ; k++) {
  if(list[k] > list[k+1])
   return 0;//sort 가 이뤄지지 않았으므로 0을 반환
  new_signature ^= list[k];//signature 와 마찬가지 과정을 밟는다.
 }
 new_signature ^= list[n-1];//마지막것도 계산을 해준다.
 if(signature == new_signature)
  return 1;//같다면 sort 가 제대로 이루어짐
 return 0;//다르다면 오류


첫번째 함수가 배열을 만든 함수고  두번째 함수가 배열의 정렬이 되었나 안됬나 확인하는 함수거든..

근데 확인하는 함수에서 if(list[k] > list[k+1])  이거만 있으면 정렬이 되엇나 안되엇나 확인이 가능 할거 같은데

왜 굳이 signature 라는 변수를 만들어서 또하는거? 어짜피 signature 은 무조건 같자나 이유를 모르겟어 무슨 고수의 깊은 뜻이 잇나..