二、高階排序演算法:
高階排序演算法中我們將只介紹這一種,同時也是目前我所知道(我看過的資料中)的最快的。
它的工作看起來仍然象乙個二叉樹。首先我們選擇乙個中間值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...