深入浅出的排序算法-选择排序

Posted 黄广达

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出的排序算法-选择排序相关的知识,希望对你有一定的参考价值。

有趣有内涵的文章第一时间送达!


 喝酒I创作I分享


生活中总有些东西值得分享

当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 深入浅出的排序算法-选择排序 深入浅出的排序算法-选择排序

深入浅出的排序算法-选择排序


选择排序


选择排序比冒泡排序快一些,之前的《》是需要掌握的,现在讲的选择排序比冒泡排序快一些,也是常用的排序算法。


选择排序是第一个人和后续排序的人进行比较,若第一个人大于第二个人,就进行交换,那么这时第一人就是最小的,然后这时的第一个人和第三个人进行比较,若这时的第一个人大于第三个人,就进行交换位置,这时第一个人又换人了,也变得更小了,就这样,把剩下的人以这种方法进行比较,直到最后,第一轮结束,在第一位的就是最小的值。


这种就是排序算法,比如有6个人,第一轮要进行5次比较,不是。


进行代码展示


//第一轮
for(int index=1;index<arr.length;index++)
{
if(arr[0]>arr[index])
{
  int temp = arr[0];
  arr[0] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第二轮
for(int index=2;index<arr.length;index++)
{
if(arr[1]>arr[index])
{
  int temp = arr[1];
  arr[1] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第三轮
for(int index=3;index<arr.length;index++)
{
if(arr[2]>arr[index])
{
  int temp = arr[2];
  arr[2] = arr[index];
  arr[index] = temp;
}
}
print(arr);

//第四轮
for(int index=4;index<arr.length;index++)
{
if(arr[3]>arr[index])
{
  int temp = arr[3];
  arr[3] = arr[index];
  arr[index] = temp;
 }
}
print(arr);

//第五轮
for(int index=5;index<arr.length;index++)
{
if(arr[4]>arr[index])
{
  int temp = arr[4];
  arr[3] = arr[index];
  arr[index] = temp;
 }
}
print(arr);

//第六轮没有,我们arr.length=6举例
//int index = 6;index<arr.length; false


优化


public static void selectionSort(int[] arr)
{
for(int count=1;count<arr.length;count++)
{
 for(int index=count;index<arr.length;index++)
 {
  if(arr[count-1]>arr[index])
  {
    int temp = arr[count-1];
    arr[count-1] = arr[index];
    arr[index] = temp;
  }
 }
}





喜欢本文的朋友们

欢迎长按下图关注订阅号

收看更多精彩内容


以上是关于深入浅出的排序算法-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

实验八--排序算法

五十五深入插入排序和选择排序

浅入浅出 Java 排序算法

数据结构与算法之三 深入学习排序

❤️万字详解「 冒泡排序 」,深入浅出「 算法思维 」❤️

Java数据结构和算法总结-冒泡排序选择排序插入排序算法分析