1.2 选择排序| 菜鸟教程

文章推薦指數: 80 %
投票人數:10人

选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n²) 的时间复杂度。

所以用到它的时候,数据规模越小越好。

唯一的好处可能就是不占用额外的内存空间了吧。

菜鸟教程--学的不仅是技术,更是梦想! 首页 笔记首页 Android ES6教程 排序算法 Hadoop Zookeeper Verilog 编程技术 程序员人生 首页 Android ES6 逗乐 Search 1.2选择排序 分类算法 选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n²)的时间复杂度。

所以用到它的时候,数据规模越小越好。

唯一的好处可能就是不占用额外的内存空间了吧。

1.算法步骤 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

2.动图演示 代码实现 JavaScript代码实现 实例 functionselectionSort(arr){   varlen=arr.length;   varminIndex,temp;   for(vari=0;iarr[j]{                 min=j             }         }         arr[i],arr[min]=arr[min],arr[i]     }     returnarr } Java代码实现 实例 publicclassSelectionSortimplementsIArraySort{   @Override   publicint[]sort(int[]sourceArray)throwsException{     int[]arr=Arrays.copyOf(sourceArray,sourceArray.length);     //总共要经过N-1轮比较     for(inti=0;i//整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能 voidselection_sort(std::vector&arr){     for(inti=0;i(T[]arr)whereT:System.IComparable{//整數或浮點數皆可使用     inti,j,min,len=arr.Length;     Ttemp;     for(i=0;i0)                 min=j;         temp=arr[min];         arr[min]=arr[i];         arr[i]=temp;     } } Swift 实例 importFoundation ///选择排序 /// ///-Parameterlist:需要排序的数组 funcselectionSort(_list:inout[Int])->Void{   forjin0..list[i]{         minIndex=i       }     }     list.swapAt(j,minIndex)   } } 原文地址:https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/2.selectionSort.md 参考地址:https://zh.wikipedia.org/wiki/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F ←1.1冒泡排序 1.3插入排序→ 2篇笔记 写笔记 #0   SNK2345  239***[email protected]实现 classSelectionSort{ /** *拓展IntArray为他提供数据两个数交换位置的方法 *@parami第一个数的下标 *@paramj第二个数的下标 */ funIntArray.swap(i:Int,j:Int){ vartemp=this[i] this[i]=this[j] this[j]=temp } funselectionSort(array:IntArray):IntArray{ for(iinarray.indices){ //假设最小值是i varmin=i varj=i+1 while(jinarray.indices){ if(array[j](array:&mut[T]){ foriin0..array.len(){ letmuttemp=i; forjini..array.len(){ ifarray[j]



請為這篇文章評分?