快速排序 冒泡排序

 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]);
	
}

  

posted @ 2014-03-16 11:07  elroyzhang  阅读(199)  评论(0编辑  收藏  举报