设为首页 加入收藏

TOP

排序算法总结
2015-02-02 14:50:14 来源: 作者: 【 】 浏览:25
Tags:排序 算法 总结

1 冒泡排序:


void BubbleeSort(int*p,int len,SORT_TYPE type = SORT_ASC)
?{
?
? //冒泡方式二:当某一次遍历没有发生任务数据交互时,说明已经排序好了
? bool flag = true;
? int k = len;
? while (flag)
? {
? ?flag = false;
? ?for(int j=0 ; j? ?{
? ? if (p[j] > p[j+1])
? ? {
? ? ?swap(p+j,p+j+1);
? ? ?flag = true;
? ? }
? ?}
?}


2、快速排序:


?void QuickSort(int*a, int nLeft, int nRight)
?{
? if(nLeft > nRight) return;


? int temp = a[nLeft];
? int i = nLeft;
? int j = nRight;


? while (i < j)
? {
? ?//首先从右边找到一个比temp小的数
? ?while(a[j]>=temp && j>i)
? ? j--;
? ?//从左边边找到一个比temp大的数
? ?while(a[i]<=temp && j>i)
? ? i++;
? ?//交换找到的两个数据
? ?//交换两个数在数组中的位置? ? ? ? ? ? ? ?
? ?swap(a+i,a+j);
? }
? //print(a,10);
? //最终将基准数归位?
? swap(a+nLeft,a+i);
? QuickSort(a,nLeft,i-1);
? QuickSort(a,i+1,nRight);
?}


3、插入排序


? ? ? ? ? void InsertSort(int*a, int nLeft, int nRight)?{
? for(int i=1 ; i< len ; i++)
? {
? ?if(a[i] < a[i-1])
? ?{
? ? ?int j = i-1;
? ? int temp = a[i];


? ? while(temp < a[j])
? ? {
? ? ?a[j+1] = a[j];
? ? ?j--;
? ? }
? ? a[j+1] = temp;
? ?}
? ?//print(a,len);
? }
?}


4、选择排序


?void SelectSort(int*a,int len,SORT_TYPE type = SORT_ASC)
?{
? for(int i=0; i? {
? ?int temp = a[i];
? ?int index = i;
? ?for(int j=i+1; j ? ?{
? ? if(a[j] < a[index])
? ? {
? ? ?index = j;
? ? }
? ?}
? ?swap(a+i,a+index);
? }
? //print(a,len);
?}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言访问MySQL数据库的方法 下一篇TCP可靠传输机制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: