c ++
bubble:
void bubble(int a[], int len) {
for(int i = 0;i < len-1;i ++) {
for(int j = 0;j < len-i-1;j ++) {
if(a[j] > a[j + 1]) {
swap(a[j], a[j+1]);
}
}
}
}
selection
void selection_sort(int a[], int len) {
for(int i = 0;i < len-1;i ++) {
int min = i;
for(int j = i+1;j < len;j ++){
if(a[min] > a[j])
min = j;
}
swap(a[i], a[j]);
}
}
merge_sort
//y 值是数组长度 版本一:一个|| 可以省去一个else if,比较难看懂
void merge_sort(int* a, int x, int y, int* T) {
if(y-x > 1) {
int m = x + (y-x)/2;
int t = x, start=x,end=m;
merge_sort(a, x, m, T);
merge_sort(a, m, y, T);
while(start < m || end < y){
if(end >= y || (start < m && a[start] >= a[end])) T[i ++] = a[start ++];
else
T[i ++] = a[end ++];
}
for(int i = x;i < y;i ++) {
a[i] = T[i];
}
}
}
版本二:将|| 拿出来写成else if
if(end >= y) T[i ++] = a[start ++];
else if(start < m && a[start] >= a[end]))
T[i ++] = a[start ++];
else
T[i ++] = a[end ++];
}
quick_sort
void quick_sort(){
}