>Java >java지도 시간 >Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

王林
王林앞으로
2019-11-26 14:18:102724검색

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

삽입 정렬 소개:

저는 대부분의 사람들이 포커를 했다고 믿습니다. 많은 사람들이 카드를 받았을 때 카드를 손에 들고 카드를 순서대로 놓는 것을 좋아합니다. 빈 왼손으로 시작하고 카드가 테이블 위에 있습니다. 그런 다음 테이블에서 한 번에 한 장씩 카드를 가져와 왼손의 제자리에 삽입합니다. 카드의 올바른 위치를 찾기 위해 이미 손에 있는 모든 카드와 오른쪽에서 왼쪽으로 비교합니다.

Java 관련 추천 무료 동영상 튜토리얼: java 무료 동영상 튜토리얼

의사 코드:

INSERTION-SORT(A)	//A是数组
 for j = 2 to A.length
key = A[j]
//(将A[j]插入排序序列A[1..j-1])
i = j - 1
while i > 0 and A[i] > key
A[i+1] = A[i]
i = i - 1
A[i+1] = key

java 코드:

//升序排序
public void InsertSortAscending(int[] A){
		for(int j = 1;j < A.length;j++){
			int key = A[j];
			//将A[j]插入排序序列A[1..j-1]
			int i = j - 1;
			while(i >= 0 && A[i] > key){
				A[j+1] = A[i];
				i = i - 1;
			}
			A[i+1] = key;
		}
}

삽입 정렬의 실행 단계를 살펴보겠습니다

배열 A[ 사용 2, 4,7,1,3,6]을 예로 들어보겠습니다

각 for 루프에서 노란색 직사각형은 A[j]의 값이고, 7행의 while 루프에서는 파란색 직사각형과 결합됩니다. 왼쪽의 사각형 값이 비교됩니다. 파란색 화살표는 8행에서 배열이 오른쪽으로 한 위치 이동했음을 나타내고, 노란색 화살표는 11행에서 키워드가 이동한 위치를 나타냅니다.

첫 번째 루프: 아래 그림에 표시된 대로:

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

두 번째 루프: 아래 그림에 표시된 대로:

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

참고: 여기서 A[2]는 A[1]보다 큽니다. 왜냐하면 A가 [1 ]은 확실히 A[0]보다 크므로 A[2]와 A[1]의 크기를 비교할 필요가 없습니다. 조건이 충족되지 않아 while 루프가 종료됩니다.

세 번째 주기: 아래 그림과 같이:

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

네 번째 주기: 아래 그림과 같이:

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

다섯 번째 주기: 아래 그림과 같이:

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

A 배열 이때 그림과 같이

Java 코드와 의사 코드를 사용하여 삽입 정렬 구현

6번째 루프에서 j는 6으로 루프 j

추천 Java 관련 기사 및 튜토리얼: java 입문 프로그램

위 내용은 Java 코드와 의사 코드를 사용하여 삽입 정렬 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제