버블 정렬:
버블 정렬(BubbleSort)의 기본 개념은 인접한 두 숫자를 순서대로 비교하여 앞에 소수점을 넣고 뒤에 큰 숫자를 넣는 것입니다. 즉, 첫 번째 단계에서는 먼저 첫 번째 숫자와 두 번째 숫자를 비교하고 소수점을 앞에 배치하고 큰 숫자를 뒤에 배치합니다.
그런 다음 두 번째 숫자와 세 번째 숫자를 비교하고 소수를 앞에 넣고 큰 숫자를 뒤에 넣고 마지막 두 숫자를 비교할 때까지 이렇게 계속해서 앞에 소수를 넣고 큰 숫자를 앞에 넣습니다. 뒤쪽에. 이것이 첫 번째 여행의 끝이며, 끝에 가장 큰 숫자가 남습니다. 두 번째 단계에서는 여전히 첫 번째 숫자 쌍에서 비교를 시작합니다(두 번째 숫자와 세 번째 숫자의 교환으로 인해 첫 번째 숫자가 더 이상 두 번째 숫자보다 작지 않기 때문일 수 있음). 숫자가 재생된 후 마지막에서 두 번째 숫자까지 비교가 계속됩니다(마지막 첫 번째 위치가 이미 가장 큰 위치임). 두 번째 패스가 끝나면 a. 새로운 최대 숫자는 마지막에서 두 번째 위치에서 얻어집니다(실제로 전체 시퀀스에서 두 번째로 큰 숫자입니다). 이렇게 계속해서 정렬이 최종적으로 완료될 때까지 위의 과정을 반복하세요. (추천 학습: Java 비디오 튜토리얼)
선택 정렬:
처음으로 인덱스 0부터 시작하여 숫자를 인덱스 0과 비교하고 다음 n-1 숫자를 최소값 또는 최대값으로 찾습니다. 아래 첨자 0이 있는 위치에서 두 번째부터 비교를 시작합니다. 나머지 최대값 또는 최소값을 쿼리하고 정렬이 완료될 때까지 계속합니다.
public class MaoPao { public static void main(String[] args) { int arr[]={23,12,46,24,87,65,18,14,43,434,65,76}; int k=0; //冒泡排序 for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1;j++){ if(arr[j]<arr[j+1]){ int t=arr[j]; arr[j]=arr[j+1]; arr[j+1]=t; k++; } System.out.print("i="+i+"的第j="+j+"次交换\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } System.out.println("交换的次数为"+k); //选择排序 int l=0; for(int i=0;i<arr.length-1;i++){ for(int j=i+1;j<arr.length-1;j++){ if(arr[i]<arr[j]){ int t=arr[i]; arr[i]=arr[j]; arr[j]=t; l++; } System.out.print("i="+i+"的第j="+j+"次交换\t"); for(int d=0;d<arr.length;d++){ System.out.print(arr[d]+"\t"); } System.out.println(); } } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+"\t"); } System.out.println("交换的次数为"+l); } }
차이를 요약할 시간입니다
(1) 버블 정렬은 인접한 위치에 있는 두 숫자를 비교하고, 선택 정렬은 최대값 또는 최소값을 찾기 위해 비교합니다.
(2) 각 비교 라운드가 끝난 후 버블 정렬에서는 위치가 올바르지 않으면 위치를 변경해야 합니다. 선택 정렬에서는 각 비교 라운드마다 한 번만 위치를 변경하면 됩니다.
(3) 버블 정렬에서는 위치를 찾기 위해 숫자를 사용합니다. 선택 정렬 주어진 위치에서 숫자를 찾는 것입니다.
더 많은 Java 관련 기술 기사를 보려면
Java Development Tutorial칼럼을 방문하세요.
위 내용은 선택 정렬과 버블 정렬의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!