简单排序——选择排序
来源:互联网 发布:雾炮机 知乎 编辑:程序博客网 时间:2024/06/07 02:31
基本思想:
每次从待排序序列中选出最大或最小的元素放在序列的起始位置,直到所有待排序的元素排列完成
代码实现:
public static void main(String[] args) { int[] array = new int[]{1,3,6,2,8,7,10,4,9,5}; selectSort(array);//选择排序,不稳定 }public static void selectSort(int arr[]){ for(int i=0; i<arr.length-1; i++){ int index = i;//用于保存最小值的索引 for(int j=i+1; j<arr.length;j++){//循环找到最小值并保存它的下标 if(arr[j]<arr[index]){ index = j; } } if(index!=i){ int temp = arr[i]; arr[i] = arr[index]; arr[index] = temp; } System.out.print("第"+ (i+1)+ "次排序结果:"); for(int k=0 ;k<arr.length; k++){ System.out.print(" "+arr[k]+" "); } System.out.print("\n"); } }
执行结果:
第1次排序结果: 1 3 6 2 8 7 10 4 9 5 第2次排序结果: 1 2 6 3 8 7 10 4 9 5 第3次排序结果: 1 2 3 6 8 7 10 4 9 5 第4次排序结果: 1 2 3 4 8 7 10 6 9 5 第5次排序结果: 1 2 3 4 5 7 10 6 9 8 第6次排序结果: 1 2 3 4 5 6 10 7 9 8 第7次排序结果: 1 2 3 4 5 6 7 10 9 8 第8次排序结果: 1 2 3 4 5 6 7 8 9 10 第9次排序结果: 1 2 3 4 5 6 7 8 9 10
复杂度分析:
比较的总次数为:(n-1)+(n-2)+……+1=(n-1+1)*n/2,所以时间复杂度为O(n^2)
阅读全文
0 0
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序—简单选择排序
- 选择排序—简单选择排序
- 排序算法之选择排序——简单选择排序
- 排序算法——简单选择排序
- 排序算法——简单选择排序
- 简单排序——选择排序
- 排序算法——简单选择排序
- (五)简单排序—选择排序
- 内部排序—简单选择排序
- 选择排序——简单选择和堆排序
- 简单选择排序的改进——二元选择排序
- 8.选择排序——简单选择排序
- 选择类排序——简单选择排序
- 算法之选择排序——简单选择排序
- Java中使用TCP协议的简单连接
- 利用ES6中的模板字符串轻松实现多行和字符串值的插入
- maven exclude 排除文件夹
- cross entropy
- intell IDEA 代码自动提示功能没有LE ---File >Power Save Mode 被勾选了 去掉勾选就可以了
- 简单排序——选择排序
- equals与"==" 同时判断时前后位置不同的后果
- git log统计每个作者的代码量
- UVa
- Android Fragment 真正的完全解析(上)
- 使用dex2jar和luyten查看apk中的class代码
- 设置开发板的IP
- hibernate配置文件头所在包中的位置
- NetBeans IDE品鉴