排序专题——七大排序算法完整版

不要逼逼赖赖,有本事键盘上敲一敲
好了,直接上代码!!!

#include
#include
#include
#include 

void bubbleSort(int *arr,int n){
    for(int i=0; iarr[j+1]){
                int temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
                flag = true;
            }
        }
        if(flag==false) return;
    }
}

int findMax(int *arr,int n){
    int max = arr[0];
    int pos = 0;
    for(int i=0; imax){
            max = arr[i];
            pos = i;
        }
    }
    return pos;
}

void selectSort(int *arr,int n){
    if(n>0){
        int pos = findMax(arr,n);
        int temp = arr[n-1];
        arr[n-1] = arr[pos];
        arr[pos] = temp;
        n--;
        selectSort(arr,n);
    }
}

void insert(int *arr, int n){
    int key = arr[n-1];
    int i = n-1;
    while(arr[i-1]>key){
        arr[i] = arr[i-1];
        i--;
        if(i==0) break;
    }
    arr[i] = key;
}

void insertSort(int *arr,int n){
    if(n==0 || n==1) return;
    for(int i=1; itemp){
            j--;
        }
        if(i=1; dk=dk/2){
        for(i=dk+1; i0&&arr[j]>arr[j-dk]; j=j-dk){
                    arr[j] = arr[j-dk];
                }
                arr[j] = temp;
            }
        }
    }
}

void swap(int *arr, int pos){
    int left = pos*2;
    int right = pos*2+1;
    if(arr[pos]0; i--){
        swap(arr,i);
    }
}

void heapSort(int *arr,int n){
    for(int i=n-1; i>0; i--){
        adopt(arr,i);
        int temp = arr[1];
        arr[1] = arr[i];
        arr[i] = temp;
    }
}

int main(){
    int arr[] = {4,1,2,0,6,9,32,8};
    int start = 0;
    int end = 7;

//    shellSort(arr,8);

//    bubbleSort(arr,end+1);

//    selectSort(arr,end+1);

//    insertSort(arr,end+1);

//    MergeSort(arr,start,end);

//    quickSort(arr,start,end);

//    heapSort(arr,end+1);

    for(int i=0; i

你可能感兴趣的:(程序员)