java 거품 정렬 및 빠른 정렬 코드

거품 정렬:
기본 사상: 정렬해야 할 한 조의 수에서 현재 정렬되지 않은 범위 내의 모든 수를 위에서 아래로 서로 인접한 두 수를 순서대로 비교하고 조정하여 비교적 큰 수를 아래로 가라앉히고 비교적 작은 수를 위로 솟구치게 한다.즉, 서로 인접한 수를 비교한 후에 그들의 정렬이 정렬 요구와 상반되는 것을 발견할 때마다 그것들을 교환한다.

public class BubbleSorted{ 
public BubbleSorted(){ 
int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; 
int temp=0; 
for(int i=0;i<a.length-1;i++){ 
for(int j=0;j<a.length-1-i;j++){ 
if(a[j]>a[j+1]){ 
temp=a[j]; 
a[j]=a[j+1]; 
a[j+1]=temp; 
} 
} 
} 
for(int i=0;i<a.length;i++) 
System.out.println(a[i]); 
} }
빠른 정렬:
알고리즘: 데이터의 양이 많으면 이 방법을 사용하기에 적합하다.이분법으로 찾을 때 데이터는 질서정연하게 중복되지 않아야 한다.기본 사상: 데이터가 상승 순서에 따라 정렬된다고 가정하고 주어진 값 x에 대해 서열의 중간 위치부터 비교한다. 만약에 현재 위치 값이 x와 같으면 찾기에 성공한다.만약 x가 현재 위치 값보다 작으면 수열의 앞부분에서 찾습니다.만약 x가 현재 위치 값보다 크면 수열의 후반부에서 찾을 때까지 계속 찾습니다.
만약에 하나의 수조가 {12, 23, 34, 45, 56, 67, 77, 89, 90} 있다고 가정하면, 현재 이분법으로 지정한 수치를 찾아서 수조의 인덱스에 되돌려 달라고 요구합니다. 만약 찾지 못하면 -1로 되돌려줍니다.코드는 다음과 같습니다.

package com.test;

public class FindSorted{
public static void main(String[] args) {
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(search(arr, 12));
System.out.println(search(arr, 45));
System.out.println(search(arr, 67));
System.out.println(search(arr, 89));
System.out.println(search(arr, 99));
}
public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!

좋은 웹페이지 즐겨찾기