冒泡排序
int arr[10] = { 7,4,2,3,5,8,9,6,1,10 };
int len = sizeof(arr) / sizeof(arr[0]) - 1;
//冒泡排序 从小到大
//外层循环每次执行都能确定一个最大值
for (int i = 0; i < len; i++)
{
//内层循环内次执行能确定两个数值中的最大值
for (int j = 0; j < len - i; j++)
{
if (arr[j] > arr[j + 1])
{
//两个数据交换位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
选择排序
void SelectSort(char **arr,int len)
{
for (int i = 0; i < len; ++i)
{
int min = i;
for (int j = i + 1; j < len; ++j)
{
if (strcmp(arr[j],arr[min]) < 0)
{
min = j;
}
}
//交换
if (min != i)
{
char *temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}
char* pArr[] = { "ddd", "ccc", "fff", "hhh", "ppp", "rrr" };
//pArr是什么类型的? char **类型的
int len = sizeof(pArr) / sizeof(char *);
//选择排序
SelectSort(pArr, len);