首页 > 编程知识 正文

c语言简单选择排序算法代码,选择排序算法代码

时间:2023-05-06 20:29:50 阅读:141705 作者:1314

算法将数组分为两个子集排序和未排序,分别从未排序的子集中选择最小元素放入排序子集,将整个数组的排序时间复杂度o(n ) 2与冒泡排序进行比较当其交换次数较少,但集有序度高的冒泡优于稳定排序算法时,选择属于不稳定排序的稳定排序是一种在对象的不同字段进行多次排序也不会扰乱等价元素顺序的不稳定排序。 相反不稳定的例子【2321】

使用选择排序

1 .最小元素为1且索引为3的元素1与索引为0的元素2进行交换【1322】。 这里,前面排的2跑到了索引2的元素2的后面。 2 .最小元素2交换索引2的元素2和索引1的元素1232】。 3 .最小元素还是2索引为3的元素2和索引为2的元素3交换后变成【1223】。 最终两个相同的元素先后转换不稳定。

为了减少交换次数,实例优化点可以在每个循环中查找最小的索引,以在每个循环的最后交换元素。

/** * author pzz * date 2022/5/25 *排序*/publicclassselectionsort { publicstaticvoidmain (string [ ] args ) int [ ] a ssselet } privatestaticvoidselection (int [ ] a ) ) for ) intI0; i a.length - 1; I )//I选择在每个回合中最小元素所在的目标索引,在每个回合中最小元素所在的位置//s表示最小元素的索引int s i。 for(intjs1; j a.length; j () if ) a[s]a[j] ) /出现比其小的要素并重新代入最小要素索引s j; }//每次循环发生最小索引交换,将元素放入排序后的数组交换元素if中(s! I ) swap(a,s,I ); } system.out.println (arrays.tostring (a ) ); } publicstaticvoidswap (int [ ] array,int i,int j ) { int t array[i]; array[i] array[j]; array[j] t; }运行结果

[ 9、23、19、18、23、15 ] [ 9、15、19、18、23、23 ] [ 9、15、18、19、23、23 ] [

结束了

你们总是抱怨这个地方,但你们不敢从那里出去。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。