自己實現的排序演算法,用來複習
#include
using
namespace
std;
void swap(int &a,int &b)
void headp_adjust(int *a,int s,int m)
else
break;
}a[s] = temp;
}void bubble_sort(int *a,int len)
}//for (int i = 0; i < len; i++)
////cout << endl;
}}void select_sort(int *a,int len)
if (min != i)
swap(a[i],a[min]);
}}void insert_sort(int *a, int len)
a[j + 1] = temp;}}
}void shell_sort1(int *a,int len)
a[k+d] = temp;}}
}}
}void shell_sort2(int *a, int len)
a[j + d] = temp;}}
}}void shellsorthb(int p, int n)
p[j + d] = temp;}}
}void stack_sort(int *a,int len)
//cout << endl;
}cout
<< endl;
for (int j=len-1;j>0;j--)
//cout << endl;
}}//歸併排序 遞迴實現
void merge(int *a,int low,int mid,int high)
while (i<=mid)
while (j <= high)
for (i = 0; i < high - low + 1; i++)
delete buffer;
}void merge_sort1(int *a, int low, int high)
}//歸併排序非遞迴實現
//引數和遞迴略不同,n代表陣列中元素個數,即陣列最大下標是n-1
void merge_sort2(int *a, int n)
size *= 2;
}}int main()
; int b[10] = ;
/*stack_sort(a, 9);*/
/*bubble_sort(a, 9);*/
/*select_sort(a,9);*/
/*insert_sort(a,9);*/
/*shell_sort1(b,10);*/
//shellsort(a,10);
/*shellsorthb(a,10);*/
/*merge_sort1(b,0,9);*/
merge_sort2(b, 10);
cout
<< endl;
for (auto s:b)
return
0;}
排序演算法 選擇排序演算法實現
1 時間複雜度 o n 2 2 選擇排序主要操作是交換和比較 交換次數在0 n 1 總比較次數 n n 1 n 2 n 3 1 n n 1 2 因為交換需要的cpu時間 比較需要的cpu時間 當n比較少時,選擇比冒泡快,減少了不必要的交換,每次交換僅僅是最大值或者最小值與序列起始位置進行狡猾。3 演...
排序 桶排序演算法實現
演算法名桶排序 分類排序演算法 複雜度線性 消耗儲存空間較大 實現形式 單鏈表特性 原址排序 具體參考出處 演算法導論 bucket sort.cpp 定義控制台應用程式的入口點。include stdafx.h include include include define data num 100...
排序 內部排序演算法實現
1.歸併排序 分析 歸併排序使用分治思想,原理是 將乙個無序數列分成兩個序列後,對序列進行排序後,再將兩個有序序列合併成乙個有序序列 分開的兩個序列又可以進行再分排序然後合併從而形成問題的子問題。include include void merge int a,int ans,int s,int m...