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...