排序演算法----選擇排序
選擇排序的思路是,先從序列中找到最小的元素,放在第一個位置,然後找到第二小的元素,放在第二個位置,以此類推,直到排好所有的值。
時間複雜度:O(n^2),需要進行比較的次數為第一輪n-1,n-2,n-3...1,總的比較次數n*(n-1)/2
例如:a=[1,2,3,4,5,6]
python3程式碼
def select_sorted(li): for i in range(len(li)-1): # 外層迴圈決定需要排序的輪次 min_index = i # 記錄最小索引 for j in range(i+1,len(li)): # 內層迴圈決定需要比較的次數 if li[min_index] > li[j]: # 判斷 min_index = j li[i],li[min_index] = li[min_index],li[i] return li
相關推薦
排序演算法--選擇排序之簡單選擇排序
在待排序記錄中,選擇一個最小的數,和第一個記錄交換位置,在剩下n-1個的記錄中選擇最小的和第二個記錄交換,依次類推,最終可以得到一個有序的序列。 程式碼: #include <string.h> #include <malloc.h> #includ
排序演算法之選擇排序(關鍵詞:資料結構/演算法/排序演算法/選擇排序)
假定:有 1 個亂序的數列 nums ,其中有 n 個數。 要求:排好序之後是 從小到大 的順序。 選擇排序演算法 程式碼 from swap import swap def select_sort(nums): n = len(nums) i = 0 while
小甲魚 排序演算法 選擇排序
小甲魚 排序演算法 選擇排序 雖然選擇排序 和 氣泡排序 進行的比較次數是一樣的,但是選擇排序 比 氣泡排序 進行移動的次數少,效率更高 選擇排序: //selectsort.c #include <stdio.h> void Selec
排序演算法----選擇排序
選擇排序的思路是,先從序列中找到最小的元素,放在第一個位置,然後找到第二小的元素,放在第二個位置,以此類推,直到排好所有的值。 時間複雜度:O(n^2),需要進行比較的次數為第一輪n-1,n-2,n-3...1,總的比較次數n*(n-1)/2 例如:a=[1,2,3,4,5,6]
排序演算法---選擇排序
參考網址:https://www.cnblogs.com/onepixel/articles/7674659.html 選擇排序(Selection-sort)是一種簡單直觀的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位
最易於理解的排序演算法——選擇排序
我在標題中說選擇排序是最易於理解的演算法,下面就來給大家說說為何選擇排序是最易於理解的演算法。 思想: 以升序為例,在陣列arr中遍歷陣列找到其中最小的那個元素,將其與arr[0]交換,之後在剩餘的陣列中,在尋找最小的元素,將其與arr[1
排序演算法--選擇排序--簡單選擇排序
//選擇排序--簡單選擇排序 void selection_print_list(int list[] , int count) { for(int i = 0 ; i < count ; i++) { printf("%5d" ,
java排序演算法—選擇排序(二)
選擇排序 選擇排序的思想方法:快速排序的思想非常直接,正如名字一樣,將要排序的資料元素選出最小的,將它和資料元素的首位交換位置。再次從剩下的資料元素中 找到最小的元素,放到第二個位置上……以此類推,直到將整個資料元素排序。 程式碼實現 public class selectSor
三種基礎排序演算法(選擇排序、插入排序、氣泡排序)
注: 圖片轉自點選開啟連結 以下均使用升序介紹。 選擇排序: 從陣列中找到最小的元素,和第一個位置的元素互換。 從第二個位置開始,找到最小的元素,和第二個位置的元素互換。 ........ 直到選出array.length
資料結構和演算法分析之排序演算法--選擇排序(堆排序)
選擇排序–堆排序 堆排序是一種樹形選擇的排序,是對直接選擇排序的有效改進。 (直接選擇排序:第一次選擇最小值,與第一位數交換,再從後面選擇最小的,和第二位數交換……直至排序結束,共n-1次) 基本思想: 堆的定義如下:具有n個元素的序列(k1,k2,…,
排序演算法—選擇排序演算法分析與實現(Python)
December 23, 2015 12:31 PM 思想 選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第一個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇
排序演算法(直接插入、氣泡排序、選擇排序、快速排序、希爾排序、堆排序、歸併排序)
main函式 int main() { int data[] = {1,2,6,3,4,7,7,9,8,5}; //bubble_sort(data,10); //select_sort(data,10); Insert_Sort(data,10); fo
Python 演算法 - 選擇排序
# coding=utf-8 # 選擇排序 def select_sort(lst=[]): """ 基本思想:第1趟,在待排序記錄r1 ~ r[n]中選出最小的記錄,將它與r1交換; 第2趟,在待排序記錄r2 ~ r[n]中選出最小的記錄,將它與r2交換;
各種排序演算法,一步步更新(一),桶排序,氣泡排序,選擇排序,快速排序
部分方法來自我關注的博主 J_小浩子 謝謝 1 桶排序 bucketsort 1 桶排序 #include <stdio.h>//桶排序基本說明 int main(){ int data1[11]={0},tem
《資料結構與演算法》之排序演算法(氣泡排序、選擇排序)
排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇
利用指標排序與選擇排序演算法
1 //讀入字串,並排序字串 2 #include <stdio.h> 3 #include <string.h> 4 #define SIZE 81 5 #define LIM 20 6 #define HALT "" 7 8 void sts
排序演算法上——氣泡排序、插入排序和選擇排序
1. 排序演算法? 排序演算法應該算是我們最熟悉的演算法了,我們學的第一個演算法,可能就是排序演算法,而在實際應用中,排序演算法也經常會被用到,其重要作用不言而喻。 經典的排序演算法有:氣泡排序、插入排序、選擇排序、歸併排序、快速排序、計數排序、基數排序、桶排序。按
陣列的常見排序演算法--氣泡排序,選擇排序
陣列的排序演算法--氣泡排序,選擇排序 1.氣泡排序 基本思想 演算法實現 2.選擇排序演算法 基本思想 演算法實現 程式設計中,我們會經
氣泡排序、選擇排序、插入排序、快速排序演算法耗時測試
import java.util.*; public class Test1 { public static void main(String[] args) throws Exception{ int[] arr1=new int[20000]; for(int i=0;i&l
Python三種排序演算法的執行速度對比(快速排序、氣泡排序、選擇排序)
最近看了一下快速排序演算法,據說速度比其他的排序演算法快,於是寫了三個排序演算法對比一下,分別是氣泡排序,快速排序,選擇排序,以下是三個排序演算法的程式碼: 氣泡排序 BubbleSort.py # -*- coding:utf8 -*- def Sort(list