Java选择排序举例分析(java,开发技术)

时间:2024-05-05 16:05:34 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

选择排序原理

①假设第一个索引处的元素为最小值,和其他值进行比较,如果当前的索引处的元素大于其他某个索引处的值,则假定其他某个索引处的值为最小值,最后找到最小值所在的索引

②交换第一个索引处和最小值所在的索引处的值

选择排序API设计

类名Selection构造方法Selection():创建Selection对象成员方法

1.public static void sort(Comparable[] a):对数组内的元素进行排序

2.private static boolean greater(Comparable v,Comparable w):判断v是否大于w

3.private static void exchange(Comparable[] a,int i,int j):交换a数组中,索引i和索引j处的值

选择排序代码实现

publicclassSelection{//对数组a中的元素进行排序publicstaticvoidsort(Comparable[]a){for(inti=0;i<a.length-2;i++){intminIndex=i;for(intj=i+1;j<a.length;j++){if(greater(a[minIndex],a[j])){minIndex=j;}}exchange(a,i,minIndex);}}privatestaticbooleangreater(Comparablev,Comparablew){returnv.compareTo(w)>0;}privatestaticvoidexchange(Comparable[]a,inti,intj){Comparablet=a[i];a[i]=a[j];a[j]=t;}}classTest{publicstaticvoidmain(String[]args){Integer[]a={4,6,8,7,9,2,10,1};Selection.sort(a);System.out.println(Arrays.toString(a));}}

选择排序的时间复杂度

选择排序使用了双层for循环,外层循环完成了数据交换,内层循环完成了数据比较,所以分别统计:数据比较次数:(N-1)+(N-2)+(N-3)+...+2+1=

Java选择排序举例分析

((N-1)+1)*(N-1)/2=N^2/2-N/2;

数据交换次数:N-1;

时间复杂度: N^2/2-N/2+(N-1)=N^2/2+N/2-1;

根据大O推导法则,保留最高阶项,去除常数因子,时间复杂度为O(N^2)

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Java选择排序举例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Python中栈举例分析下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18