// 冒泡排序
void func_bubble_sort(int arr[], int l, int r)
{
int i;
int j;
int temp;
//for optimize 1
int flag_swap;
//for optimize 2
int n;
int pos = 0;
for ( j = 0; j < r-l+1; ++j )
{
flag_swap = 0;
if ( 0 == pos )
{
n = r-j;
}
else
{
n = pos;
}
//for ( i = l; i < r-j; ++i )
for ( i = l; i < n; ++i )
{
if ( arr[i] > arr[i+1] )
{
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
flag_swap = 1;
pos = i;
}
}
if ( 0 == flag_swap )
{
return;
}
}
}
// 直接选择排序
void func_select_sort(int arr[], int l, int r)
{
int i = 0;
int j &
一些排序算法
最新推荐文章于 2023-05-08 10:11:28 发布
本文介绍了三种基本的排序算法:冒泡排序、直接选择排序和直接插入排序。冒泡排序通过不断交换相邻逆序元素实现排序,优化后的版本减少了不必要的比较。直接选择排序每次找到剩余部分的最小元素并放到正确位置。直接插入排序则是将每个元素插入到已排序部分的正确位置,逐步构建完整有序序列。
摘要由CSDN通过智能技术生成