日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解選擇排序

選擇排序(Selection sort)是一種簡單直觀的排序算法。其基本思想是:首先在未排序的數(shù)列中找到最小(or最大)元素,然后將其存放到數(shù)列的起始位置;接著,再從剩余未排序的元素中繼續(xù)尋找最小(or最大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

算法步驟

首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置。

再從剩余未排序元素中繼續(xù)尋找最小(大)元素,然后放到已排序序列的末尾。

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

動圖演示

什么是選擇排序?什么是選擇排序?

代碼實現(xiàn)

JavaScript 代碼實現(xiàn)

實例

function selectionSort(arr) {
   var len = arr.length;
   var minIndex, temp;
   for (var i = 0; i for (var j = i + 1; j if (arr[j] return arr;
}

Python 代碼實現(xiàn)

實例

def selectionSort(arr):
   for i in range(len(arr) - 1):
       # 記錄最小數(shù)的索引
       minIndex = i
       for j in range(i + 1, len(arr)):
           if arr[j] # i 不是最小數(shù)時,將 i 和最小數(shù)進行交換
       if i != minIndex:
           arr[i], arr[minIndex] = arr[minIndex], arr[i]
   return arr

Go 代碼實現(xiàn)

實例

func selectionSort(arr []int) []int {
       length := len(arr)
       for i := 0; i for j := i + 1; j if arr[min] > arr[j] {
                               min = j
                       }
               }
               arr[i], arr[min] = arr[min], arr[i]
       }
       return arr
}

Java 代碼實現(xiàn)

實例

public class SelectionSort implements IArraySort {

   @Override
   public int[] sort(int[] sourceArray) throws Exception {
       int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);

       // 總共要經(jīng)過 N-1 輪比較
       for (int i = 0; i for (int j = i + 1; j if (arr[j] if (i != min) {
               int tmp = arr[i];
               arr[i] = arr[min];
               arr[min] = tmp;
           }

       }
       return arr;
   }
}

PHP 代碼實現(xiàn)

實例

function selectionSort($arr)
{
   $len = count($arr);
   for ($i = 0; $i $len - 1; $i++) {
       $minIndex = $i;
       for ($j = $i + 1; $j $len; $j++) {
           if ($arr[$j] $arr[$minIndex]) {
               $minIndex = $j;
           }
       }
       $temp = $arr[$i];
       $arr[$i] = $arr[$minIndex];
       $arr[$minIndex] = $temp;
   }
   return $arr;
}

C 語言

實例

void swap(int *a,int *b) //交換兩個變數(shù)
{
   int temp = *a;
   *a = *b;
   *b = temp;
}
void selection_sort(int arr[], int len)
{
   int i,j;

       for (i = 0 ; i for (j = i + 1; j if (arr[j] 

C++

實例

template //整數(shù)或浮點數(shù)皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能
void selection_sort(std::vector& arr) {
       for (int i = 0; i for (int j = i + 1; j if (arr[j] 

C#

實例

static void selection_sort(T[] arr) where T : System.IComparable{//整數(shù)或浮點數(shù)皆可使用
       int i, j, min, len = arr.Length;
       T temp;
       for (i = 0; i for (j = i + 1; j if (arr[min].CompareTo(arr[j]) > 0)
                               min = j;
               temp = arr[min];
               arr[min] = arr[i];
               arr[i] = temp;
       }
}

Swift

實例

import Foundation
/// 選擇排序
///
/// - Parameter list: 需要排序的數(shù)組
func selectionSort(_ list: inout [Int]) -> Void {
   for j in 0..
  
   for i 
   in j..
   
    if list[minIndex] > list[i] {                minIndex = i            }        }        list.swapAt(j, minIndex)    } } 
   
  

當前標題:詳解選擇排序
轉(zhuǎn)載注明:http://www.5511xx.com/article/djecesp.html