C++の3つの一般的なソート法、バブルソート、選択ソート、高速ソート


C++の3つの一般的なソート法
バブルソート、ソートの選択、クイックソート
#include
using namespace std;

/* 
	          
	           ,            
*/ 
void print(int arr[], int length){  
    for(int j = 0; j < length; j++){  
        cout<<arr[j] <<"  ";  
    }
    cout<<endl;
}

/* 
	              
	            ,           1          2 
*/ 
void swap(int array[], int a, int b){
	int s = array[a];
	array[a] = array[b];
	array[b] = s;
}

/*
	    
	           ,            
*/ 
void bubbleSort(int array[], int length){
	for (int i = 0; i < length; i++){
		for (int j = i + 1; j < length; j ++ ){
			if (array[i] > array[j]){
				swap(array, i, j);
			}
		}
	}
}

/*
	    
	           ,             
*/ 
void selectSort(int array[], int length){
	for (int i = 0; i < length; i++){
		int bufferIndex = i;
		for (int j = i + 1; j < length; j ++ ){
			if (array[j] < array[bufferIndex]) {
				bufferIndex = j;
			} 
		}
		swap(array,i,bufferIndex);
	} 
}

/*
	     
	           ,            ,             
*/ 
void quickSort(int array[], int start, int end){
	if(end <= start){
		return;
	}
	int left = start;
	int right = end;
	int pivot = array[left];
	while (left < right){
		//          
		while (left < right && array[right] >= pivot){
			right --;
		}
		//              
		array[left] = array[right];
		//          
		while (left < right && array[left] <= pivot){
			left ++;
		}
		//              
		array[right] = array[left];
	}
	array[left] = pivot;
	quickSort(array, start, left - 1);//         
	quickSort(array, left + 1, end);//         
} 

int main(){
	//       
	int arr1[] = {4,5,2,3,1};
	print(arr1, 5);
	bubbleSort(arr1, 5);
	print(arr1,5);
	
	//       
	int arr2[] = {4,5,2,3,1};
	print(arr2, 5);
	selectSort(arr2, 5);
	print(arr2, 5);
	
	//       
	int arr3[] = {4,5,2,3,1};
	print(arr3, 5);
	//          
	quickSort(arr3, 0, 4);
	print(arr3, 5);
	return 0;
}