는 C#으로,이다 (당신이 "길이"decapitalize 경우, Java 또는) :
void myFunction(int[] arr)
{
for(int i = 0; i < arr.Length; i++)
{
if(arr[i] > i)
{
int j = i;
while(j < arr.Length && arr[j] >= j)
j = j + 1;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i = 0;
}
}
}
동안 사용 대신에 :
void myFunction(int[] arr)
{
int i = 0;
while(i < arr.Length)
{
if(arr[i] > i)
{
int j = i;
while(j < arr.Length && arr[j] >= j)
j = j + 1;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i = 0;
}
i++;
}
}
주의 들여 쓰기 구조 의사 코드 :
function myFunction(arr[])
for i = 0 to length(arr)
if (arr[i] > i) then
...
for 선언문 아래의 모든 것이 루프 안에 있고 if를 0으로 설정하는 것을 포함하여 if 아래의 모든 것이 조건부 블록 안에 있음을 의미합니다. 이 사실을 감안할 때 if 문을 입력하면 1에서 다시 시작해야합니다. 코드가 아래와 같은 경우 어떻게됩니까?
void myFunction(int[] arr)
{
int i = 0;
while(i < arr.Length)
{
if(arr[i] > i)
{
int j = i;
while(j < arr.Length && arr[j] >= j)
j = j + 1;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
i = 0;
}
}
}
경우에는 arr[i] <= i
에서 루프가 종료되지 않습니다.
명시 적으로 달리 명시하지 않는 한 항상 반복 루프의 마지막 연산이 인덱스의 이동이라고 가정해야합니다. 이것은 for 회 돌이가 어떻게 동작해야하며, 얼마 동안 구현되어야하는지 (규칙에 따라)입니다.
코드 자체는 bubble sort 구현에서 시도한 것으로 보이지만 다른 요소보다는 색인과의 비교를 기준으로 정렬됩니다. 내가 성취하려고하는 것이 무엇인지 확신 할 수 없다.
왜 그런 질문을합니까? – desperateCoder
C 스타일 구문을 사용하는 언어의 코드는 매우 유사합니다. 왜 의사 코드가하는 일인지 물어 보지 않으시겠습니까? 동안이 경우 (전 길이 (편곡)을 <) : 이 될 수 있습니다 : 나에게이 여기에 옵션이이기 때문에 –
는 아니면 할 수 있습니다에 대한 는 (i ++; 내가 길이 (편곡)를 i) i = 0; else i ++; – orsi