C++の3つの一般的なソート法、バブルソート、選択ソート、高速ソート
16809 ワード
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;
}