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 은 무조건 같자나 이유를 모르겟어 무슨 고수의 깊은 뜻이 잇나..
{
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 은 무조건 같자나 이유를 모르겟어 무슨 고수의 깊은 뜻이 잇나..
논점과 좀 다른 문제인데 ^= 연산을 배열값을 승으로 올리고 계산을 한다 가 무슨 말이지?
나도 무슨말인지 모르겠어 위 하필 그 짓을 할까