相信小伙伴们在解决问题中需要排列一下数组大小之类的排列问题,因此在这里和大家分享两个关于排列常用的方法。
目录
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;
}
}
}
//以上两种方法是常用的排列方法,除此以外还有别的几种排列方式,本篇文章由于是要放在基础篇里,其他几种方法不加以阐述,感谢浏览本文章!