算法(选择排序的算法)
来源:互联网 发布:丧尸围城2绝密档案优化 编辑:程序博客网 时间:2024/05/09 21:52
选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
首先以一个元素为基准,从一个方向开始扫描,比如从左到右扫描,以A[0]为基准,接下来从A[0]….A[9]中找出最小的元素,将其与A[0]交换。然后将其基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。一直进行到将基准位置移到数组最后一个元素时排序结束。
选择排序代码
package cp.hlg.ken;
public class Select {
/**
* 选择排序
* @param a
*/
public void selectSort(int [] a) {
int n = a.length;
//{49 ,38, 65 ,97, 76 ,13 ,27 ,49}
//趟数
for(int k=0; k<n-1; k++) {
int min = k;
//比较次数
for(int i=k+1; i<n; i++) {
if(a[i] < a[min]) {
min = i;
}
}
if(k != min) {
int temp = a[k];
a[k] = a[min];
a[min] = temp;
}
}
}
/***
* 测试选择排序
*
*/
public static void main(String[] args) {
int[] a={49 ,38, 65 ,97, 76 ,13 ,27 ,49};
Select select=new Select();
select.selectSort(a);
for (int j = 0; j < a.length - 1; j++) {
System.out.print(a[j] + ",");
}
}
}
选择排序的结果
13,27,38,49,49,65,76,
【示例】:
初始关键字 [49 38 65 97 76 13 27 49]
第一趟排序后 13 [38 65 97 76 49 27 49]
第二趟排序后 13 27 [65 97 76 49 38 49]
第三趟排序后 13 27 38 [97 76 49 65 49]
第四趟排序后 13 27 38 49 [76 97 65 49]
第五趟排序后 13 27 38 49 49 [97 65 76]
第六趟排序后 13 27 38 49 49 65 [97 76]
第七趟排序后 13 27 38 49 49 65 76 [97]
最后排序结果 13 27 38 49 49 65 76 97
- 算法(选择排序的算法)
- 排序的选择算法
- 选择排序的算法
- 选择排序的算法
- 排序算法的选择
- 排序算法 选择算法
- 算法:选择排序算法。
- 简单的选择排序算法
- 基于选择的排序算法
- 选择排序的优化算法
- 选择排序算法的实现
- 选择适当的排序算法
- Java的选择排序算法
- 选择排序算法的实验
- 选择排序的递归算法
- 排序算法--选择排序算法
- 排序算法-选择排序
- 排序算法-选择排序
- Oracle中PCTFREE, PCTUSED, INITRANS, MAXTRANX参数
- Ubuntu下安装Code::Blocks开发环境
- git 备忘与总结
- easyUI,tree,获取一级子节点
- ACboy needs your help again!
- 算法(选择排序的算法)
- 多台tomcat服务的session共享 memcached与redis
- android MotionEvent中getX()和getRawX()的区别
- PHP上传大小限制更改
- Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
- Spine 2D骨骼动画插件 for Unity
- PHP中双冒号::的用法
- android简单动画
- jquery 的 ajax的dataType,服务器返回了数据,但是succes:function(data)不执行