//方法1:冒泡法
void BubbleSort(int* arr, int len)
{
for (int i = 0; i < len - 1; i++)//控制层数
{
for (int j = 0; j< len-1-i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
void Show(int *arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[] = { 2,1,3,5,4,9,8,6};
int len = sizeof(arr) / sizeof(arr[0]);
BubbleSort(arr, len);
Show(arr, len);
return 0;
}
//方法2:选择排序法:每一轮将排序序列中最小值和待排序序列的第一个值进行交换
void InsectSort(int* arr, int len)
{
int minindex = 0;//minindex为最小值的下标
for (int i = 0; i < len - 1; i++)
{
minindex = i;
for (int j = i; j < len; j++)//找到待排序序列的最小值所在的下标 //优化:int j=i+1
{
if (arr[j] < arr[minindex])
{
minindex = j;
}
}
if (minindex != i)//优化:当最小值所在的下标和待排序序列的第一个值不是用一个的时候才交换
{
int tmp = arr[i];
arr[i] = arr[minindex];
arr[minindex] = tmp;
}
}
}
void Show(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[] = { 2,1,3,5,4,9,8,6 };
int len = sizeof(arr) / sizeof(arr[0]);
InsectSort(arr, len);
Show(arr, len);
return 0;
}
对一个字符串数组进行排序
最新推荐文章于 2025-04-04 16:41:07 发布