快速排序以及歸併排序

2021-07-11 13:24:21 字數 1102 閱讀 9465

複習演算法設計與分析這本書,看到了分治這一章講到的歸併排序和快速排序,因此就給總結一下,平時直接用stl庫裡面的sort,但是自己寫還是有些吃力的,所以就嘗試了自己寫一下,給總結一下。

//時間複雜度為o(n*log n)

#include

using

namespace

std;

void merge(int r1,int r,int s,int m,int t)

void mergesort(int r,int r1,int s,int t)

}int main()

; int b[10]; //歸併排序需要開2倍的陣列空間,同時排好序之後2個陣列是一樣的

mergesort(a, b, 0, 9);

for(int i = 0; i < 10; i++)

cout

<< a[i] << " ";

cout

<< endl;

for(int i = 0; i < 10; i++)

cout

<< b[i] << " ";

cout

<< endl;

return

0;}

//平均時間複雜度同樣為o(n*log n),最壞時間為n*n

#include

using

namespace

std;

int partion(int a,int be,int en)

while(i < j && a[i] <= a[j]) i++;

if(i < j)

}return i;

}void quicksort(int a,int i,int j)

}int main()

; quicksort(a, 0, 9);

for(int i = 0; i < 10; i++)

cout

<< a[i] << " ";

cout

<< endl;

return

0;}

歸併排序以及快速排序模板

void merge vector arr,int l,int mid,int r while p1 mid while p2 r for int i 0 i size i 歸併排序 一定要注意 號的優先順序大於 class solution void merge vector arr,int l,...

快速排序 歸併排序

感覺好久之前不寫這些基礎的東西忽然覺著,想複習一下,就簡單溫習一下排序的例子 package com.ruishenh.algoritmic public class sort static void printmsg int arrs system.out.println static int g...

快速排序,歸併排序

快速排序 quicksort 是對 氣泡排序的一種改進。設要排序的 陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。需要注意的是,多個相同的值的相對位置也許會在演算法結束時產...