内排序:排序过程中待排序的记录全部被放置内存中
稳定的排序:假设关键字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;
}
}