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

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

 

如题,本个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 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");
}


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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值