排序算法

#include
using namespace std;
void InsertSort(int* arr,int len);
void BInsertSort(int* arr,int len);//折半插入排序 
void ShellInsert(int* arr);//希尔排序 
void BubbleSort(int* arr,int len);//冒泡排序 
void QuickSort(int* arr,int low,int high);//快速排序 
int main(void){
    int arr[6]={0,9,2,1,4,5};
    //cout< arr[0];j--) arr[j+1] = arr[j];
            arr[j+1] = arr[0]; 
        }   
    } 
}

void BInsertSort(int *arr,int len){//折半插入排序 
    int i,j;
    for(i=2;i<=len;i++){
        arr[0] = arr[i];
        int low = 1;
        int high = i - 1;
        while(low <= high){
            int mid = (low+high)/2;
            if(arr[mid] > arr[0]) high = mid - 1;
            else low = mid + 1;
        }
        for(j=i-1;j>=high+1;j--) arr[j+1] = arr[j];//用j >= low 也是可以的 
        arr[high+1] = arr[0];
    } 
}
void BubbleSort(int* arr,int len){
    for(int i=1;i arr[j+1]){
                int t = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = t;
            }
        }
    }
}

void QuickSort(int* arr,int low,int high){//快速排序 
    if(low < high){
        int l = low;
        int h = high;
        arr[0] = arr[low];//取区间的第一个点作为pivot 
        while(l < h){//开始交换,比arr[0]的大的放在右边,小的放在arr[0]右边 
            while(l= arr[0]) h--;//因为当前arr[low]为空,所以先从右边开始找 
            arr[l] = arr[h];
            while(l

你可能感兴趣的:(排序算法)