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;
}
}
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.