버블 정렬
정렬할 배열을 반복해서 방문하여 두 요소를 한 번에 비교하고 순서가 잘못된 경우 교체합니다. 더 이상 교환이 필요하지 않을 때까지 어레이 방문 작업이 반복됩니다. 이는 어레이가 정렬되었음을 의미합니다.
코드는 다음과 같습니다.
public class nums { public static void main(String[] args){ int []nums = {5,4,3,2,1}; for(int i = 0; i < nums.length; i++){ for(int j = 0; j < nums.length-i-1; j++){ if(nums[j] > nums[j+1]){ int temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } for(int x = 0;x < nums.length;x++){ System.out.print(nums[x]+","); } System.out.print("\n"); } } }
각 비교 라운드 후의 출력은 다음과 같습니다.
1 4,3,2,1,5, 2 3,2,1,4,5, 3 2,1,3,4,5, 4 1,2,3,4,5, 5 1,2,3,4,5,
버블 정렬의 알고리즘 흐름은 다음을 통해 명확하게 이해할 수 있습니다. 산출.
선택 정렬
각 단계에서 정렬할 데이터 요소 중에서 가장 작은(또는 가장 큰) 요소가 선택되고 정렬할 모든 데이터 요소가 정렬될 때까지 정렬 순서의 끝에 순서가 배치됩니다. 정렬되었습니다.
코드는 다음과 같습니다.
public class nums { public static void main(String[] args){ int []nums = {5,4,3,2,1}; for(int i = 0; i < nums.length; i++){ for(int j = 0; j < nums.length; j++){ if(nums[i] < nums[j]){ int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } for(int x = 0;x < nums.length;x++){ System.out.print(nums[x]+","); } System.out.print("\n"); } } }
매 비교 라운드마다 nums[i]를 배열의 각 요소와 비교하는 코드를 보면 알 수 있습니다.
각 비교 라운드 후의 출력은 다음과 같습니다.
1 5,4,3,2,1, 2 4,5,3,2,1, 3 3,4,5,2,1, 4 2,3,4,5,1, 5 1,2,3,4,5,
출력 결과에서 버블 정렬과의 알고리즘 차이를 쉽게 확인할 수 있습니다.
자바 버블정렬과 선택정렬의 차이점에 대한 더 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!