1、冒泡排序
算法描述:
代码实现:
void bubble_sort(int* a ,int n){
bool changed;
do{
changed = false;
for(int i = 1 ; i < n ; ++i){
if(a[i] < a[i-1]){
swap(a[i],a[i-1]);
changed = true;
}
}
}while(changed);
}
2、插入排序
算法描述:
代码实现:
void insert_sort(int* a , int n){
for(int i = 1; i < n ; ++i ){
int t = a[i];
int j;
for( j = i ; j > 0 && t < a[j-1]; --j){
a[j] = a[j-1];
}
a[j] = t;
}
}
3、快速排序
算法过程描述:
代码实现:
void quick_sort(int* a , int n){
if( n <= 1){
return ;
}
if( n== 2){
if(a[1] < a[0]){
swap(a[1],a[0]);
}
}
swap(a[n/2],a[0]);
int jie = a[0];
int* l = a + 1;
int* r = a + n - 1;
while( l < r ){
while(l<r && (*l < jie)){
++l;
}
while(a<r && (*r>=jie)){
--r;
}
if(l < r){
swap(*l,*r);
}
}
if(*r < jie){
swap(*r,a[0]);
}
quick_sort(a,r-a);
quick_sort(r+1,n-1-(r-a));
}
4、选择排序
代码实现:
void choose_sort(int* a , int n){
for(int i = 0 ; i < n -1 ; ++i ){
int min = i;
for(int j = i+1 ; j < n ; ++j ){
if(a[j] < a[min]){
min = j;
}
}
swap(a[i],a[min]);
}
}