二元选择排序
来源:互联网 发布:daemontools linux 编辑:程序博客网 时间:2024/05/16 07:30
简单选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可。具体实现如下:
public static int[] selectSort(int[] a) { int i,j,min,max,temp; int n=a.length; for(i=0;i<n/2;i++) { min=i; max=i; for(j=i+1;j<n-i;j++) { if(a[j]>a[max])max=j; if(a[j]<a[min])min=j; } if(max==i&&min==n-i-1) { temp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp; } else if(max==i) { temp=a[n-i-1];a[n-i-1]=a[max];a[max]=temp; temp=a[i];a[i]=a[min];a[min]=temp; } else { temp=a[i];a[i]=a[min];a[min]=temp; temp=a[n-i-1];a[n-i-1]=a[max];a[max]=temp;} } return a; }
0 0
- 选择排序-二元选择排序
- 二元选择排序法
- 二元选择排序
- 二元选择法排序
- 二元选择排序
- 二元选择排序
- 二元选择排序
- 二元选择排序
- 选择排序改进(二元选择排序)
- 简单选择排序和二元选择排序
- 排序算法之二元选择排序
- 八大排序算法之二元选择排序
- 排序算法——二元选择排序
- OJ刷题之《二元选择排序》
- 刷题——二元选择排序
- 算法基础之----二元选择排序
- Binary Selection Sort(二元选择排序)
- 简单选择排序的改进——二元选择排序
- 2-链表逆转-图解
- 3-链表添加-图解
- 4-链表删除-图解
- java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageC
- 【汇编】学习笔记——第四篇
- 二元选择排序
- JMS学习(一)入门及activemq简单实例
- JMS学习(二)activeMQ
- 五子棋1.0版,c++初学
- 美国研究:穷养孩子难翻身
- C判断一个正整数n的d进制数是否是回文数
- 我们为什么需要Map-Reduce?
- 曾经轰动全球的短文,关于年轻人的梦想
- Same Tree Leetcode c#