编程语言
首页 > 编程语言> > 选择排序算法 ---- 将数组中的数字按照顺序排列

选择排序算法 ---- 将数组中的数字按照顺序排列

作者:互联网

选择排序算法  ---- 将数组中的数字按照顺序排列

 

如题,本个blog我想分享下我今天学习的一个简单但是很实用的算法---名字叫做选择排序算法

相信在学习C语言的时候肯定会有很多的题目难到很多正在学习C语言的朋友,比如说:

现在有一个整形列表 int arr[] = {3,2,1,55,6,7}   但是现在我要按照从小到大进行排序,我要怎么办呢?

那我就来分享下我子的的观点。

(看不懂没关系,先硬着头皮看,后面可能豁然开朗了呢)

首先可以先设置一个指针用于表示这个列表的下标  , 也就是arr[i] 的这一个i

通过这个指针的扫描,可以一层层算出最小的值,比如说我的一个值是3 ,arr[0]  = 3 

我可以设置多一个指针j,起始的j=i+1 ,这样子就可以表示出 第二个指针的扫描了

 

还有很多东西都没有提及到,但是由于能力时间有限,只能先讲这么多了

emmmmmm  感觉我讲的还是没有很精炼 ,代码如下 ,希望大家理解下

要是还是不明白的可以加我QQ2667199938,备注CSDN 

#include <stdio.h>

int main(void)
{
	int arr[] = {3,2,1,54,4} ; 
	int len = sizeof arr / sizeof(int);
	printArr(arr,len);
}


int printArr(int arr[],int len)  // 如果返回的是一个空字符  会有warning  具体原因未知,有可能是编译器的问题 
{
	int i,j ; 
	for (i = 0;i<len;i++)
	{
		int min = i ;		// 创造出第一个指针min  ,第二个指针是 j, 排序算法 
		for (j=i+1 ;j<len;j++)
		{
			if (arr[min] > arr[j])
			{
				min = j ;
			}
			
			// 交换下标   实现更换 (更加准确的说是交换位置)  
			if (min != i) 
			{
				int term = arr[min] ; 
				arr[min] = arr[i] ;
				arr[i] = term ;
				
			}
		 } 
	}
	
	
	// 实现打印
	int kk ;
	for (kk =0;kk<len; kk++)
	{
		printf("%d ",arr[kk]);
	} 
	printf("\n");
}

 

标签:顺序排列,arr,min,int,len,----,排序,指针
来源: https://blog.csdn.net/qq_50510142/article/details/111053955