C语言基础(排列篇)

相信小伙伴们在解决问题中需要排列一下数组大小之类的排列问题,因此在这里和大家分享两个关于排列常用的方法。

目录

1.冒泡排序:

程序:

2.选择排序:

代码:


1.冒泡排序:

//在一般问题的解决中排列数组常用的,也是最基础的方法就是冒泡算法。

//该算法是借助反复遍历未排列数组单位,从大到小排列或从小到大排列形成所需数组。

程序:

定义int型数组a[],以及数组的大小n,用于存储第每次被覆盖数值的临时变量tmp;

(从小到大)

for(i = 0;i < n; i++){
    for(j = 0;j < n-1-i; j++){//此处是使用每次外围循环执行完一次之后,
        if(a[j] > a[j+1]){//每次的最大值都放到未排列的最后一位 
        	tmp = a[j+1];
        	a[j+1] = a[j];
			a[j] = tmp; 
		}
    }
}

(从大到小)

for(i = 0;i < n; i++){
    for(j = n-i;j > 0;j--){//此处是使用每次外围循环执行完一次之后,
        if(a[j] > a[j-1]){//每次的最小值都放到未排列的第一位 
        	tmp = a[j-1];
        	a[j-1] = a[j];
			a[j] = tmp; 
		}
    }
}

2.选择排序:

//这种方法与冒泡类似,只是先确定存放的位置,然后挨个对比最终将符合要求的那个数存入存放位置。

代码:

for(j=0;j<10;j++){ //确定存放位置
   for(i=j;i<9;i++){//挨个遍历未排列的数组单元
     if(a[i+1]>a[j]){
      k=a[j];  
      a[j]=a[i+1];
   	  a[i+1]=k;
     }
   }  
 } 

//以上两种方法是常用的排列方法,除此以外还有别的几种排列方式,本篇文章由于是要放在基础篇里,其他几种方法不加以阐述,感谢浏览本文章!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值