거품 정렬, 정렬 선택, 정렬 삽입

2494 단어 데이터 구조
본인 소 백 한 명 이 잘 묘사 하지 못 했 을 수도 있 습 니 다.어떤 잘못된 점 이 있 는 지 지적 하여 바로잡아 주시 기 바 랍 니 다.
1. 거품 정렬: 바로 인접 한 두 가지 요 소 를 비교 하 는 것 이다. 예 를 들 어 작은 것 부터 큰 것 까지 정렬 하고 큰 것 은 오른쪽 에 두 고 작은 것 은 왼쪽 에 두 면 마지막 에 가장 큰 것 을 끝 에 놓는다.
arr={22,6,88,20}
첫 비교
만약 에 arr [0] > arr [1] 가 위 치 를 바 꾸 면 큰 숫자 를 오른쪽 에 놓 습 니 다.
이차 비교
arr [1] 와 arr [2] 를 비교 해 보 니 arr [a]
세 번 째 비교
arr [2] 와 arr [3] 을 비교 하면 arr [2] > arr [3] 는 위 치 를 교환 합 니 다. 즉, 큰 숫자 는 오른쪽 에 놓 습 니 다.
최종 최대 수 는 끝까지 튀 어 나 옵 니 다.
public void sort(int arr[]) {
		if(arr!=null){//1.        ,       
			for (int i = 0; i < arr.length-1; i++) {//     arr.length-1 
				for (int j = 0; j < arr.length-1-i; j++) {//                  ,                ,            arr.length-1-i
					if(arr[j]>arr[j+1]){//                  
						int temp=arr[j];
						arr[j]=arr[j+1];
						arr[j+1]=temp;
					}
				}
			}
		}
}

 
  

2. ( ):  ( ) , 。 index, index index 。

	public void choiceSort(int arr[]){//     ,               
		if(arr!=null){
			for (int i = 0; i < arr.length-1; i++) {
				for (int j = i+1; j < arr.length; j++) {
					if(arr[i]>arr[j]){
						int temp=arr[i];
						arr[i]=arr[j];
						arr[j]=temp;
					}
				}
			}
		}
	}
	
	public void choiceSort2(int arr[]){//     ,                        
		if(arr!=null){
			int k;//       
			int temp;
			for (int i = 0; i < arr.length-1; i++) {
				k=i;//          
				for (int j = i+1; j < arr.length; j++) {
					if(arr[k]>arr[j]){//               j   
						k=j;//         
					}
				}
				//    
				temp=arr[i];
				arr[i]=arr[k];
				arr[k]=temp;
			}
		}
	}

3. : 1( ) , , 。

public void insertionSort(int arr[]) {
		if(arr!=null){
			int temp;//    
			for (int i = 1; i < arr.length; i++) {// 1    
				temp=arr[i];//      
				int j=i-1;//            
				while(j>=0 && arr[j]>temp){//                     
					arr[j+1]=arr[j];//            
					j--;
				}
				if(j!=i-1){//              ,    
					arr[j+1]=temp;
				}
			}
		}
	}




좋은 웹페이지 즐겨찾기