排序算法---C语言实现
Posted 偷偷内卷的程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法---C语言实现相关的知识,希望对你有一定的参考价值。
目录
1.冒泡排序
思路:
左边大于右边交换一趟排下来最大的在右边
#include<stdio.h>
void Bubble_sort(int arr[], int len)
for (int i = 0; i < len; i++) //循环len次
for (int j = 0; j < len - 1; j++)
if (arr[j] < arr[j + 1]) //后一位数比前一位数小的话,就交换两个数的位置(降序)
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
int main()
int arr[] = 1, 3, 4, 2, 7, 5, 9, 10,8,6 ;
int len = sizeof(arr) / sizeof(arr[0]); //计算len的长度
Bubble_sort(arr, len); //函数调用
for (int i = 0; i < len; i++)
printf("%d ", arr[i]);
return 0;
2.选择排序
思路:
每次从待排序列中选出一个最小值,然后放在序列的起始位置,直到全部待排数据排完即可。
实际上,我们可以一趟选出两个值,一个最大值一个最小值,然后将其放在序列开头和末尾,这样可以使选择排序的效率快一倍。
#include<stdio.h>
void Select_sort(int arr[], int len)
for (int i = 0; i < len; i++)
int mindex=i; //假设mindex为最小值
for (int j = i + 1; j < len; j++)
if (arr[j] < arr[mindex])
mindex = j; //交换最小值下标
int temp = arr[i]; //交换值
arr[i] = arr[mindex];
arr[mindex] = temp;
int main()
int arr[] = 1, 3, 4, 2, 7, 5, 9, 10,8,6 ;
int len = sizeof(arr) / sizeof(arr[0]);
Select_sort(arr, len);
for (int i = 0; i < len; i++)
printf("%d ", arr[i]);
return 0;
以上是关于排序算法---C语言实现的主要内容,如果未能解决你的问题,请参考以下文章