배열 에 대한 개인 적 이해
5749 단어 자바
배열 의 특징:1.연속 공간
2.유형 고정
3.공간 크기 고정
배열 의 정의 방식:
1.배열 형식[] 배열 이름=new 배열 형식[배열 길이];(1 차원)
배열 형식[][] 배열 이름=new 배열 형식[줄][열];(2 차원)
····
···
2.데이터 형식 [] 배열 이름 = {값,값,··};
데이터 형식 [][] 배열 이름 = {{값,값},{값,값},··};
····
···
3.데이터 형식[]배열 이름;
배열 이름=new 데이터 형식[배열 길이];
주:사용 불가 배열 이름={값··};
4.데이터 형식 [] 배열 이름=new 데이터 형식[]{값,값,·};
연습:1.배열 정렬,각 조 의 모든 사람 이 정렬 방법(거품 제외)을 실현 해 야 합 니 다.
a)정렬 삽입:정렬 되 지 않 은 데 이 터 를 정렬 하지 않 은 시퀀스 에서 뒤로 스 캔 하여 해당 위 치 를 찾 아 삽입 하 는 작업 원리 입 니 다.
1.첫 번 째 요소 부터 이 요 소 는 정렬 되 었 다 고 볼 수 있 습 니 다.
2.다음 요 소 를 꺼 내 정렬 된 요소 시퀀스 에서 뒤에서 스 캔 합 니 다.
3.이 요소(정렬 됨)가 새 요소 보다 크 면 이 요 소 를 다음 위치 로 이동 합 니 다.
4.정렬 된 요소 가 새 요소 보다 작 거나 같은 위 치 를 찾 을 때 까지 3 단 계 를 반복 합 니 다.
5.새 요 소 를 이 위치 에 삽입 합 니 다.
6.반복 단계 2
b)정렬 선택
먼저 정렬 되 지 않 은 시퀀스 에서 최소 요 소 를 찾 아 정렬 시퀀스 의 시작 위치 에 저장 한 다음 에 나머지 정렬 되 지 않 은 요소 에서 최소 요 소 를 계속 찾 은 다음 정렬 시퀀스 의 끝 에 놓 습 니 다.모든 요소 가 정렬 될 때 까지 유추 합 니 다.
c)빠 른 정렬
▲수열 에서 하나의 원 소 를 골 라'기준'(Pivot)이 라 고 한다.
▲수열 을 다시 정렬 하면 모든 원소 가 기준 치보다 작은 것 은 기준 앞 에 놓 이 고 모든 원소 가 기준 치보다 큰 것 은 기준 뒤에 놓 인 다(같은 수 는 임 의 한 쪽 에 놓 일 수 있다).이 파 티 션 이 종료 되면 이 기준 은 수열 의 중간 위치 에 있 습 니 다.이것 을 파 티 션(partition)작업 이 라 고 합 니 다.
▲귀속 지(recursive)는 기준 치 원소 보다 작은 하위 수열 과 기준 치 원소 보다 큰 하위 수열 을 정렬 한다.
d)힐 정렬:체감 증분 정렬 알고리즘 이 라 고도 부 르 며 정렬 을 삽입 하 는 빠 르 고 안정 적 인 개선 버 전 입 니 다.
힐 정렬 은 정렬 을 삽입 하 는 다음 과 같은 두 가지 성질 을 바탕 으로 개선 방법 을 제시한다.
1.삽입 정렬 은 거의 정렬 된 데이터 작업 을 할 때 효율 이 높 고 선형 정렬 의 효율 을 달성 할 수 있 습 니 다.
2.그러나 정렬 을 삽입 하 는 것 은 일반적으로 비효 율 적 입 니 다.정렬 을 삽입 할 때마다 데 이 터 를 한 자리 만 이동 할 수 있 기 때 문 입 니 다>
e)더미 정렬
f)병합 정렬
g)거품 정렬
2.2 차원 배열 을 정의 하고 모든 요소 에 무 작위 로 값 을 부여 한 다음 배열 을 옮 겨 다 니 며 가장 큰 값(이 값 이 있 는 줄 과 열 포함)을 찾 아 출력 합 니 다.
import java.util.Random;
public class Array {
/**
* @param args
*/
public static void main(String[] args) {
// sort1();
// sort2(10);
// sort4(10);
sort3(4,5);
}
/**
* //
*/
public static void sort1(){
int[] base ={9,10,29,29,20,15,35,9,3,30};
System.out.println(" :");
for(int i=0;i<base.length;i++){
System.out.print(base[i]+"\t");
}
System.out.println();
System.out.println(" ( -> ):");
for(int i=0;i<base.length;i++){
int lowerIndex = i;
//
for(int j=i+1;j<base.length;j++){
if(base[j]<base[lowerIndex]){
lowerIndex = j;
}
}
//
int temp = base[i];
base[i] = base [lowerIndex];
base[lowerIndex] = temp;
System.out.print(base[i]+"\t");
}
}
/**
* //
*/
public static void sort2(int count){
//
int [] base = new int [count];
Random ran = new Random();
System.out.println(" :");
for(int i=0;i<base.length;i++){
int value = ran.nextInt(100);
base[i] = value;
System.out.print(base[i]+"\t");
}
System.out.println();
System.out.println(" ( -> ):");
//
for(int i=1;i<base.length;i++){
for(int j=i;j>0;j--){
if(base[j]<base[j-1]){
int temp = base[j];
base[j] = base[j-1];
base[j-1] = temp;
}
}
}
//
for(int i=0;i<base.length;i++){
System.out.print(base[i]+"\t");
}
}
/**
*
* @param count
*/
public static void sort4(int count){
//
int [] base = new int [count];
Random ran = new Random();
System.out.println(" :");
for(int i=0;i<base.length;i++){
int value = ran.nextInt(100);
base[i] = value;
System.out.print(base[i]+"\t");
}
System.out.println();
System.out.println(" ( -> ):");
//
for(int increment = base.length/2;increment>0;increment/=2){
//
for(int i =increment;i<base.length;i++){
int temp = base[i];
int j=0;
for( j=i;j>=increment;j-=increment){
if(temp<base[j-increment]){
base[j] = base[j-increment];
}
else{
break;
}
}//end j
base[j] = temp;
}// end i
}//end
for(int i=0;i<base.length;i++){
System.out.print(base[i]+"\t");
}
}
/**
* 2
*/
public static void sort3(int hang,int lie){
int[][] base = new int[hang][lie];
Random ran = new Random();
//
for(int i=0;i<hang;i++){
for(int j=0;j<lie;j++){
base[i][j] = ran.nextInt(100);
System.out.print(base[i][j]+"\t");
}
System.out.println();
}
int max = 0;
int x=0;
int y=0;
for(int i=0;i<hang;i++){
for(int j=0;j<lie;j++){
if(base[i][j]>max){
max = base[i][j] ;
x = i+1;
y = j+1;
}
}
}
System.out.println(" :"+max+"\t :"+x+"\t :"+y);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.