排序 -- 冒泡排序

内排序:排序过程中待排序的记录全部被放置内存中

稳定的排序:假设关键字ki = kj,排序前后ri 与rj的大小关系还是保持一致的

简单排序:冒泡排序、简单选择排序、直接插入排序

改进算法:希尔排序、堆排序、归并排序、快速排序


下面是冒泡排序代码:冒泡属于内排序,稳定的简单的,一种基于交换的排序,效率比较低,O(n)=n*n

思想:两两比较相邻的记录的关键字,如果反序则交换,直到没有反序的记录为止。

#include <stdio.h>
#include <stdlib.h>

 void bubbleSort(int *p, int count);

 int main()
 {
	int a[10] = {4,2,9,1,3,8,5,10,6,7};
	bubbleSort(a,sizeof(a)/sizeof(*a));
	int k;
	for(k=0;k<sizeof(a)/sizeof(*a);k++)
		printf("%d\n",a[k]);
    system("pause");
	return 0;
 }

 void bubbleSort(int *p, int count)
 {
	int flag,i;
	for(i=0;i<count-1;i++)
	{
		flag = 0;
		int j;
		for(j=0;j<count-1-i;j++)
		{
			if(p[j] > p[j+1])
			{

				int temp = p[j];
				p[j] = p[j+1];
				p[j+1] = temp;
				flag = 1;
			}
        }
        if(0 == flag)
            break;
	}
 }


你可能感兴趣的:(冒泡排序)