버블 정렬의 기본 아이디어는
정렬 순서를 앞에서 뒤로(아래 첨자가 작은 요소부터 시작) 처리하고 인접한 값을 비교하는 것입니다. 순서가 반대인 요소가 발견되면 요소가 교환되어 더 큰 값을 갖는 요소가 물속의 거품처럼 점차적으로 앞쪽에서 뒤쪽으로 이동하여 위로 올라갑니다.
정렬 과정에서 각 요소는 끊임없이 자신의 위치에 접근하기 때문에 비교 중에 교환이 수행되지 않으면 순서가 올바른 것입니다.
버블 정렬 알고리즘 프로세스 그림
첫 번째 정렬 통과
2차 정렬
세 번째 정렬
네 번째 정렬 단계
버블 정렬 규칙 요약
import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]= {3,9,-1,10,-2}; //第i+1趟排序,将最大的数排在最后 int temp=0;//临时变量 for(int i=0;i<arr.length-1;i++) {//定义第几轮排序 for(int j=0;j<arr.length-1-i;j++) { if(arr[j+1]<arr[j]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } System.out.println("输出第"+(i+1)+"趟排序的结果"); System.out.println(Arrays.toString(arr)); } } }실행 결과입니다:
첫 번째 정렬 결과를 출력합니다2. 선택 정렬 방법[3, -1, 9, -2, 10]
두 번째 정렬 결과를 출력
[-1, 3, - 2 , 9, 10]
3차 정렬 결과 출력
[-1, -2, 3, 9, 10]
4차 정렬 결과 출력
[-2, -1, 3, 9, 10]
정렬 아이디어:
원래 배열: 101, 34, 119, 1지침:
1 선택 정렬의 전체 배열 크기 - 1회 정렬2. 1회 정렬, 또 다른 루프, 루프의 규칙(코드)import java.util.Arrays; public class QuickSort { public static void main(String[] args) { //int []arr={ 8,3,2,1,7,4,6,5}; int [] arr={101,34,109,1}; quicksort(arr); } public static void quicksort(int []arr){ for(int j=0;j<arr.length-1;j++) { int minindex=j;//假定当前下标为最小值下标 int minnumber=arr[j];//假定当前元素为最小值 for (int i = 1+j; i < arr.length; i++) { if (arr[i] < minnumber) {//若假定最小值并不是最小的 minnumber = arr[i];//重置minnumber minindex = i;//重置minindex } } //将最小值交换 arr[minindex] = arr[j]; arr[j] = minnumber; System.out.println("第"+(j+1)+"轮"); System.out.println(Arrays.toString(arr)); } } }
위 내용은 Java에서 버블 정렬 및 선택 정렬을 구현하는 코드를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!