간단한 코드를 썼습니다. bubbleSort는 버블 정렬 함수 (가장 작은 것부터 가장 큰 것)이고 int main은 크기가 5 인 int 배열로이 코드를 테스트하는 데 사용됩니다.C : 배열에 대한 포인터 및 파괴적인 정렬
나는 이것을 파괴적으로 정렬하고 싶습니다. 배열을 복사하고 단순히 사본을 전달하는 것이 아닙니다. 나는 보았고 보았다. 그러나 나는 아직도 이것이 어떻게 작동해야하는지 완전히 명확하지 않다. 내가 여기서 무엇을 놓치고 있니?
#include <stdio.h>
void bubbleSort(int values[], int n);
int main(void) {
//set simple test array to make sure bubbleSort works
int arr[5] = {5,4,3,2,1};
//run it through function, and then print the now sorted array to make sure
bubbleSort(arr, 5);
printf("%i", arr);
return 0;
}
void bubbleSort(int values[], int n)
{
for (int i = 0; i < n; i++) {
for (int j = 0, hold = 0; j < n-i; j++) {
if (values[j] > values[j+1]) {
hold = values[j+1];
values[j+1] = values[j];
values[j] = hold;
}
}
}
return;
}
참고 : 내 코드의 나머지 내 아마추어 코딩 마음에 소리 보이지만, 등, 무엇을 더 할 수있다, 내가 개선 할 수 있는지에 나에게 포인터를주고 내가 일종의하지만 거품에 대한 재귀를 사용하는 방법에 대한 생각하십시오 저는 아직 C를 사용하기에는 편하지 않습니다. 구현하고 싶습니다. 그러나 당신이 제안을 가지고 있다면 나는 그것들을 읽는 것보다 더 행복 할 것이다.
감사합니다.
"에서 장소 정렬"더 좋은 이름 ... –
'의 printf 것 ("% i"가, 편곡), '잘못, 당신은 배열의 요소를 인쇄해야합니다 즉 배열 자체가 아니라'arr [0]'이다. –
'n-i'는 괜찮지 만 첫 번째 루프는'i = 1'에서 시작해야합니다. 'i'가 0이면 내부 루프는 for (j = 0; j
user3386109