排序算法:
1.冒泡排序,2,选择排序,3,插入排序,4,shell排序,5快速排序
//交换
void swap(int *a, int *b)
{
int t=*a; *a=*b; *b=t;
}
1.冒泡排序(O(n2))
//冒泡排序
void BubbleSort(int *array,int len)
{
char isChanged = 1;
int times = 0;
int i = 0;
for (times=1; times<len; times++)//len-1 times
{
isChanged = 0;
for (i=0;i<len-times;i++)
{
if (array[i]>array[i+1])
{
swap(&array[i],&array[i+1])
isChanged = 1;
}
}
if (!isChanged)
break;
}
}
2.选择排序(O(n2))
void selectionSort(int data[], int count)
{
int i, j, min;
for (i = 0; i < count - 1; i++)
{
/* find the minimum */
min = i;
for (j = i+1; j < count; j++)
{
if (data[j] < data[min])
min = j;
swap(&data[i],&data[min]);
}
}
}
3.插入排序(O(n2))
void InsertSort(int array[], int n)
{
int i,j,temp;
for(i=1;i<n;i++)
{
temp = array[i];
for(j=i; j>0 && temp < array[j-1] ; j--)
{
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
4.shell排序