排序算法---C语言实现

Posted 偷偷内卷的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法---C语言实现相关的知识,希望对你有一定的参考价值。

目录

1.冒泡排序

2.选择排序


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语言实现的主要内容,如果未能解决你的问题,请参考以下文章

用C语言编写一函数,函数实现以下数字的排序[升序和降序]

基于C语言的堆排序

基于C语言的堆排序

基于C语言的堆排序

10大排序算法的实现(Java语言)

用C语言编程实现快速排序算法