当前位置 博文首页 > KOOKNUT的博客:常见排序算法以及其时间复杂度
冒泡算法:时间复杂度O(n^2)、比较稳定
void Sub_1()
{
/*使用双for循环,然后第一个for循环确定遍历次数
第二个for循环来进行比较,进行转换*/
int v1[5] = { 1,4,3,2,6 };
int i, j;
for (i = 0; i < (sizeof(v1) / sizeof(int)); i++)
{
for (j = i + 1; j < (sizeof(v1) / sizeof(int)); j++)
{
if (v1[i] > v1[j])//当前是否大于它后面的那些元素,如果大,则换到后面
{
//1 4 3 2 6
//1 3 4 2 6
//1 2 4 3 6
//1 2 3 4 6
swap(v1[i], v1[j]);//交换两数位置
}
}
}
}
选择排序:时间复杂度O(n^2) 、不稳定
void Sub_2()
{
int v1[5] = { 1,4,3,2,6 };
int Length = sizeof(v1) / sizeof(int);
int Index;
for (int i = 0; i < Length - 1; i++)
{
Index = i;
for (int j = i + 1; j < Length; j++)
{
if (v1[j] < v1[Index])
{
Index = j;//确保每次Index得到的索引是最小的数据
}
}
if (v1[Index] < v1[i])
{
swap(v1[i], v1[Index]);
}
}
}
…待继续更新
cs