1、冒泡排序
typedef enum Status{
TRUE=1,
FALSE=0
}Status;
/*
n个元素,执行n-1轮,每一轮确定一个最大或最小值
每一轮执行多少次?
第一轮:n-1次
第二轮:n-2次
……
第i轮:n-i次
*/
void bubbleSort(int * arr,int n)
{
int temp,i;
Status flag;
for (i=1,flag = TRUE; i<n && flag; ++i)
{
flag = FALSE;
for (int j=0; j<n-i; ++j)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = TRUE;
}
}
}
}
2、选择排序
void selectSort(int *arr, int n)
{
//升序排列
int min,value;
for (int i=0; i<n-1; ++i)
{
min = i;
for (int j=i+1; j<n; ++j)
{
if (arr[min]>arr[j])
{
min=j;
}
}
if (min != i)
{
value = arr[min];
arr[min] = arr[i];
arr[i]=value;
}
}
}
3、插入排序
void insertSort(int * arr,int n)
{
int temp;
for (int i=1; i<n; ++i)
{
int j=i-1;
temp = arr[i];
while (temp<arr[j] && j>=0)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1] = temp;
}
}