选择算法
来源:互联网 发布:linux怎么设置搜狗 编辑:程序博客网 时间:2024/06/06 00:25
代码:
- //选择排序
- public void selectSort(int[] array) {
- int min;
- int tmp = 0;
- for (int i = 0; i < array.length; i++) {
- min = array[i];
- for (int j = i; j < array.length; j++) {
- if (array[j] < min) {
- min = array[j];//最小值
- tmp = array[i];
- array[i] = min;
- array[j] = tmp;
- }
- }
- }
- }
模拟
设 int[] array = new int[]{
5,13,4,8,1
};
执行 selectSort(int[] array);
min = null;
temp = 0;
第一层循环第一次{
i = 0;
min = array[i]; // array[0] = 5;
第二层第一次{
j = i = 0;
//判断
array[j] < min ; // array[0] = min = 5 不满足条件
}
第二层第二次{
j++; // j = 1;
//判断
array[j] < min; // array[1] = 13; min = 5 ; array[1] > min ; 不满足
}
第二层第三次{
j++; // j=2;
//判断
array[j] < min; // array[2] = 4; min = 5 满足
min = array[j];//最小值 min = array[2] = 4
tmp = array[i]; // tmp = array[0] = 5
array[i] = min; // array[0] = 4;
array[j] = tmp; //array[2] = 5;
}
此时的数组排序为 4 13 5 8 1
第二层第四次{
j++; // j=3;
//判断
array[j] < min; // array[3] = 8; min = 4 不满足
}
第二层第五次{
j++; // j=4;
//判断
array[j] < min; // array[4] = 1; min = 4 满足
min = array[j];//最小值 min = array[4] = 1
tmp = array[i]; // tmp = array[0] = 4
array[i] = min; // array[0] = 1;
array[j] = tmp; //array[4] = 4;
}
此时的数组排序为 1 13 5 8 4
}
外层 第一次循环完之后 1 13 5 8 4 选出了最小的数字 排在数组的第一个 下面的循环以此类推
得到最终的数组为 1 4 5 8 13
- “选择算法”
- 算法 选择
- 选择算法
- 选择算法
- 选择算法
- 选择算法
- 选择算法
- 选择算法
- 算法:选择
- 选择算法
- 选择算法
- 排序算法 选择算法
- 算法:选择排序算法。
- 选择算法(选择排序)
- 算法笔记(选择算法)
- 算法(选择排序的算法)
- 算法_选择排序算法
- 查找算法---快速选择算法
- 实现Comparable接口报错:Comparison method violates its general contract!
- js
- 点到平面的距离公式
- AngularJs全选反选的代码
- 在UTF-8中,一个汉字为什么需要三个字节?
- 选择算法
- 为什么选择rabbitmq
- Unity Socket UDP
- 使用jersey框架上传图片到图片服务器
- liunx网络编程(1)
- 获取list集合指定变量的值的集合
- java 生成二维码
- 单域名下多子域名同时认证HTTPS
- 图的割点、桥和双连通分支的基本概念