插入排序,快速排序,堆排序,歸併排序

2021-06-19 06:42:15 字數 1193 閱讀 2210

插入排序

void insert_sort(int arry, int length)

}

快速排序

int quick_adj(int arry, int low, int high)

else if((arry[(high+low)/2] >= arry[low] && arry[(high+low)/2] <= arry[high]) ||

(arry[(high+low)/2] >= arry[high] && arry[(high+low)/2] <= arry[low]))

int pivot = arry[high];

while(low < high)

arry[low] = pivot;

return low;

}void quick_sort(int arry, int low, int high)

}

堆排序

void heap_adj(int arry, int low, int high)

arry[low] = temp;

}void heap_sort(int arry, int length)

}

歸併排序

void merge(int arry, int* temp, int low, int mid, int high)

while(i <= mid)

temp[k++] = arry[i++];

while(j <= high)

temp[k++] = arry[j++];

while(--k >= low)

arry[k] = temp[k];

}void m_sort(int arry, int* temp, int low, int high)

}void merge_sort(int arry, int low, int high)

使用c標準庫提供的rand()函式隨機產生20萬個[0,100]的整數,大致的排序時間為:插入排序43.47秒;快速排序0.67秒;堆排序0.05秒;歸併排序0.05秒.另外直接呼叫c++algorithm的sort排序,耗時大致為0.04秒,標準庫就是牛啊!

插入排序 歸併排序 堆排序

include void insertion sort int arr,int len arr j 1 temp int main int n 5 insertion sort a,n for int i 0 iprintf d a i includevoid merge sort recursiv...

排序(插入排序,希爾排序,歸併排序,快速排序)

1.插入排序 每一步將乙個待排序的元素按照其關鍵字值的大小插入到已排序序列的適當位置,知道待排序元素插入完為止。1 核心 void sort int a,int n 插入排序 a j temp 2 例題 將序列 3,1,4,1,5,9,2,6,5用插入排序排位公升序列。include void so...

氣泡排序,插入排序,堆排序,歸併排序,希爾排序

感謝姥姥提供模板 感謝姥姥 展示 include include using namespace std 氣泡排序 void bubble sort int arr,int n 插入排序 void insertionsort int arr,int n arr i tmp 希爾排序 void she...