日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

算法步驟

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

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

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

動(dòng)圖演示

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

代碼實(shí)現(xiàn)

JavaScript 代碼實(shí)現(xiàn)

實(shí)例

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 代碼實(shí)現(xiàn)

實(shí)例

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ù)時(shí),將 i 和最小數(shù)進(jìn)行交換
       if i != minIndex:
           arr[i], arr[minIndex] = arr[minIndex], arr[i]
   return arr

Go 代碼實(shí)現(xiàn)

實(shí)例

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 代碼實(shí)現(xiàn)

實(shí)例

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 代碼實(shí)現(xiàn)

實(shí)例

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 語言

實(shí)例

void swap(int *a,int *b) //交換兩個(gè)變數(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++

實(shí)例

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

C#

實(shí)例

static void selection_sort(T[] arr) where T : System.IComparable{//整數(shù)或浮點(diǎn)數(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

實(shí)例

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)    } } 
   
  

當(dāng)前題目:詳解選擇排序
文章地址:http://www.dlmjj.cn/article/djecesp.html