【算法】【C语言】排序算法
前言
本文为个人笔记。作者会不定时修改文章内容。
1. 冒泡排序
时间复杂度O(n2)
int BubbleSort(int nums[10])
{
int temp = 0;
for(int i = 0; i < 9; i++)
{
for(int j = i + 1; j < 10; j++)
{
if(nums[i] > nums[j])
{
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
return 0;
}
int BubbleSort(int num[10])
{
int temp = 0;
for(int i = 0; i < 9; i++)
{
for(int j = 9; j > i; j++)
{
if(nums[j] < nums[i])
{
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
return 0;
}
2. 选择排序
时间复杂度O(n2)
int SelctionSort(int nums[10])
{
for(int i = 0; i < 9; i++)
{
int minNum = 0;
for(int j = i + 1; j < 10; j++)
{
if(nums[j] < nums[i])
{
minNum = j;
}
if(minNum != i)
{
int temp = 0;
temp = minNum[i];
minNum[i] = minNum[j];
minNum[j] = minNum[i];
}
}
}
return 0;
}
int SelctionSort(int nums[10])
{
for(int i = 9; i > 0; i--)
{
int maxNum = 9;
for(int j = i - 1; j >= 0; j--)
{
if(nums[j] > nums[i])
{
maxNum = j;
}
if(maxNum != i)
{
int temp = 0;
temp = minNum[i];
minNum[i] = minNum[j];
minNum[j] = minNum[i];
}
}
}
return 0;
}
3. 插入排序
时间复杂度O(n2)
int InsertionSort(int nums[10])
{
for(int i = 0; i < 9; i++)
{
for(int j = i + 1; j--; i < 10)
{
if(nums[i] > nums[j])
{
int temp;
temp = nums[i];
nums[i] = nums[j];
}
}
}
return 0;
}
int InsertionSort(int nums[10])
{
for(int i = 9; i > 0; i++)
{
for(int j = i - 1; j--; j >= 0)
{
if(nums[i] > nums[j])
{
int temp;
temp = nums[i];
nums[i] = nums[j];
}
}
}
return 0;
}
4. 希尔排序
4.1 时间复杂度O(n1.5)
4.2 空间复杂度
4.3
5. 快速排序
5.1 时间复杂度O(N*logN)
5.2 空间复杂度
5.3
6. 并归排序
6.1 时间复杂度O(N*logN)
6.2 空间复杂度
6.3
7. 堆排序
7.1 时间复杂度O(N*logN)
7.2 空间复杂度
7.3
8. 基数排序
8.1 时间复杂度O(d(n+r))
8.2 空间复杂度
8.3
结语
感谢阅读,欢迎各位读者在评论区留言。如果文章对你有帮助,欢迎点赞收藏。