快速排序 冒泡排序
july大神博客上的一个特别简便的实现方法
void quicksort(int l, int u)
{ int i, m;
if (l >= u) return;
swap(l, randint(l, u));
m = l;
for (i = l+1; i <= u; i++)
if (x[i] < x[l])
swap(++m, i);
swap(l, m);
quicksort(l, m-1);
quicksort(m+1, u);
}
bubble sort
#include <stdio.h> int main(void) { int i; int j; int temp; int a[4] = {5, 3, 6, 2}; // bubblesort(a, 4); for(i = 0; i < 4; i++) for(j = 0; j < 4 - i - 1; j++) if(a[j] > a[j+1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } for(i = 0; i < 4; i++) printf("%d ", a[i]); printf("\n"); }
快速排序完整版
#include <stdio.h>
void swap(int a[], int l, int u)
{
int temp;
temp = a[l];
a[l] = a[u];
a[u] = temp;
}
void quicksort(int a[], int l, int u)
{
int i, m;
if(l >= u) return;
m = l;
for(i = l + 1; i <= u; i++)
{
if(a[l] > a[i])
swap(a, i, ++m);
}
swap(a, l, m);
quicksort(a, l, m -1);
quicksort(a, m + 1, u);
}
int main()
{
int i;
int a[4] = {5, 3, 6 ,1};
quicksort(a, 0, 3);
for(i = 0; i <4; i++)
printf("%d ", a[i]);
}
浙公网安备 33010602011771号