排序演算法 選擇排序演算法實現

2021-08-22 08:24:35 字數 1457 閱讀 5374

1、時間複雜度:o(n^2)

2、選擇排序主要操作是交換和比較;

交換次數在0~(n-1);

總比較次數:n=(n-1)+(n-2)+(n-3)+…..+1=n(n-1)/2;

因為交換需要的cpu時間》比較需要的cpu時間;

當n比較少時,選擇比冒泡快,減少了不必要的交換,每次交換僅僅是最大值或者最小值與序列起始位置進行狡猾。

3、演算法步驟:

(1)在待排序序列中找到最大/最小元素,放在序列的起始位置;

(2)序列長度減1,在子串行中重複(1)操作;

(3)終止條件,子串行中只有乙個元素。

4、選擇排序演算法實現**(方法一)

/*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

* @file main.c

* @author haojiefenglang

* @date 6 august 2018

* @remark 6 august 2017

* @theme select sort

/*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

*****

#include

#include

void selectsort(int a, int n)

if (min != i)//將最小值的位置min和當前位置i進行交換

}printf("比較次數%d,移動次數%d\n", count1, count2);

}int main()

;int n = 10;

selectsort(a, n);

printf("選擇排序後為: ");

for (int i = 0; i < n; i++)

printf("%d ", a[i]);

printf("\n");

return 0;

}

方法二(借助迭代器)

**片段如下:

void selection_sort(vector

::iterator begin,vector

::iterator end)}}

}

實現選擇排序演算法

package page48 實現選擇排序演算法 程式演算法排序 實現選則排序演算法 選擇排序演算法的原理 先將資料列表中的第乙個數與後面的每乙個數進行比較,把小的數放在第乙個數中,從而找出最小的,然後在用第二個數與後面的每乙個數進行比較.直到找到最後乙個數 public class selecti...

排序演算法 排序演算法之選擇排序

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法 選擇排序

private static int leftchild int i private static void perc int a,int i,int n for int i 0 ir j break else public static void heasp int r,int n for i 0...