选择排序
void sort(int a[], int len)
{
int i, j;
for (i=0; i<len; i++) {
for (j=0; j<i; j++) {
if (a[i]>a[j]) {
int t = a[i]; a[i] = a[j]; a[j] = t;
}
}
}
}
冒泡排序
void sort(int a[], int len)
{
int i, j;
for (i=0; i<len; i++) {
for (j=i; j>0; j--) {
if (a[j]<a[j-1]) {
int t = a[j]; a[j] = a[j-1]; a[j-1] = t;
}
}
}
}
直接插入排序
void sort(int a[], int len)
{
int i, j;
for (i=1; i<len; i++) {
int tmp = a[i];
for (j=i; j>0; j--) {
if (tmp<a[j]) {
a[j] = a[j-1];
}
else {
break;
}
a[j] = tmp;
}
}
}
快速排序
void swap(int k[], int i, int j)
{
int tmp = k[i];
k[i] = k[j];
k[j] = tmp;
}
void sort(int a[], int left, int right)
{
int j, last;
if (left>=right) {
return;
}
swap(a[], left, (left+right)/2);
last = left;
for (j=left+1; j<=right; j++) {
if (a[j] < a[left]) {
swap(a, last++, j);
}
}
sort(a, left, last-1);
sort(a, last+1, right);
}