排序演算法 1

2021-04-21 07:51:36 字數 802 閱讀 1627

二、高階排序演算法:

高階排序演算法中我們將只介紹這一種,同時也是目前我所知道(我看過的資料中)的最快的。

它的工作看起來仍然象乙個二叉樹。首先我們選擇乙個中間值middle程式中我們使用陣列中間值,然後

把比它小的放在左邊,大的放在右邊(具體的實現是從兩邊找,找到一對後交換)。然後對兩邊分別使

用這個過程(最容易的方法——遞迴)。

1.快速排序:

#include

void run(int* pdata,int left,int right)

}while(i<=j);//如果兩邊掃瞄的下標交錯,就停止(完成一次)

//當左邊部分有值(lefti),遞迴右半邊

if(right>i)

run(pdata,i,right);

}

void quicksort(int* pdata,int count)

void main()

;

quicksort(data,7);

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

cout<

void bubble2sort(int* pdata,int count)

pdata[w+k] = itemp;

}

}

}

void main()

;

shellsort(data,12);

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

cout<

排序 排序演算法1

所謂氣泡排序就是,一組資料,以遞增的順序來說明,從第乙個數data 0 開始,依次和後面的資料比較大小,如果data 0 大於當前位置上的數就和這個數交換位置並繼續和後面的數相比,如果遇到比自己大的數了,就不交換 下一次開始的位置是data 1 然後依次往後推。void myswap int num...

排序演算法 1 選擇排序演算法

這篇部落格分為兩個部分 選擇排序演算法基本思想 實現與解析 由於這個排序演算法比較簡單,因此這篇博文就不做過多解釋了 一.選擇排序演算法基本思想 1 選擇排序 小到大排序 1.遍歷所有未排序的元素 找到最小的那個元素 2.將這個元素與未排序序列的第乙個元素交換位置 3.當剩下乙個元素時 排序結束 o...

排序演算法(1)

常用的排序演算法的時間複雜度和空間複雜度 排序法 最差時間分析 平均時間複雜度 穩定度 空間複雜度 氣泡排序 o n2 o n2 穩定 o 1 快速排序 o n2 o n log2 n 不穩定 o log2 n o n 選擇排序 o n2 o n2 穩定 o 1 二叉樹排序 o n2 o n log...