Python 演算法 - 選擇排序
# coding=utf-8
# 選擇排序
def select_sort(lst=[]):
"""
基本思想:第1趟,在待排序記錄r1 ~ r[n]中選出最小的記錄,將它與r1交換;
第2趟,在待排序記錄r2 ~ r[n]中選出最小的記錄,將它與r2交換;
以此類推,第i趟在待排序記錄r[i] ~ r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
:param lst:
:return:
"""
count = len(lst)
for i in range(0, count):
min = i
for j in range(i + 1, count): # 從待排記錄中選出最小的記錄
if lst[min] > lst[j]:
min = j
lst[min], lst[i] = lst[i], lst[min] # 將最小的記錄與待排序記錄中的第一個記錄進行交換
return lst
相關推薦
Python 演算法 - 選擇排序
# coding=utf-8 # 選擇排序 def select_sort(lst=[]): """ 基本思想:第1趟,在待排序記錄r1 ~ r[n]中選出最小的記錄,將它與r1交換; 第2趟,在待排序記錄r2 ~ r[n]中選出最小的記錄,將它與r2交換;
python實現選擇排序演算法
什麼是選擇排序請看:排序演算法:氣泡排序和選擇排序的內容,區別與優缺點。 __author__ = "PoHu" __copyright__ = "PoHu 2018" __version__ = "1.0.0" __license__ = "Henu" def findSmal
排序演算法之python簡單選擇排序
簡單選擇排序 介紹: 簡單選擇排序是一種選擇排序。每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止 思想: 選擇排序思想很簡單,就是每次從待排序列中找出關鍵字最小的元素,放入已經排好的序列中,本質上就是第一次在後面選
排序演算法—選擇排序演算法分析與實現(Python)
December 23, 2015 12:31 PM 思想 選擇排序的思想非常直接,不是要排序麼?那好,我就從所有序列中先找到最小的,然後放到第一個位置。之後再看剩餘元素中最小的,放到第二個位置……以此類推,就可以完成整個的排序工作了。可以很清楚的發現,選擇
python之選擇排序
pytho 分享 技巧 index for spa sort odin 介紹 參考博客:1,http://www.cnblogs.com/luchen927/archive/2012/02/27/2367108.html2,http://www.cnblogs.com/u
排序演算法--選擇排序之簡單選擇排序
在待排序記錄中,選擇一個最小的數,和第一個記錄交換位置,在剩下n-1個的記錄中選擇最小的和第二個記錄交換,依次類推,最終可以得到一個有序的序列。 程式碼: #include <string.h> #include <malloc.h> #includ
Python 演算法 - 快速排序
# coding=utf-8 # 快速排序 def quick_sort(lists, left, right): """ 通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小, 然後再按此方法對這兩部分資料分別進行
Python 演算法 - 氣泡排序
# coding=utf-8 # 氣泡排序 def bubble_sort(lists): """ 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。 走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。
排序演算法之選擇排序(關鍵詞:資料結構/演算法/排序演算法/選擇排序)
假定:有 1 個亂序的數列 nums ,其中有 n 個數。 要求:排好序之後是 從小到大 的順序。 選擇排序演算法 程式碼 from swap import swap def select_sort(nums): n = len(nums) i = 0 while
小甲魚 排序演算法 選擇排序
小甲魚 排序演算法 選擇排序 雖然選擇排序 和 氣泡排序 進行的比較次數是一樣的,但是選擇排序 比 氣泡排序 進行移動的次數少,效率更高 選擇排序: //selectsort.c #include <stdio.h> void Selec
java版資料結構與演算法—選擇排序
/** * 選擇排序:時間複雜度O(n^2), * 比氣泡排序稍好點,交換次數少 */ class ArraySelect { public static void selectSort(int arr[]){ for(int i=0;i<arr.leng
排序演算法----選擇排序
選擇排序的思路是,先從序列中找到最小的元素,放在第一個位置,然後找到第二小的元素,放在第二個位置,以此類推,直到排好所有的值。 時間複雜度:O(n^2),需要進行比較的次數為第一輪n-1,n-2,n-3...1,總的比較次數n*(n-1)/2 例如:a=[1,2,3,4,5,6]
Python實現選擇排序
演算法介紹 選擇排序(Selection Sort)是一種簡單直觀的排序演算法。氣泡排序每比較一次就可能交換一次,但是選擇排序是將一輪比較完後,再把最小的放到最前的位置(或者把最大的放到最後)。 選擇排序的流程為:首先在未排序序列中找到最小(大)元素,存放到
排序演算法---選擇排序
參考網址: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" ,
用python實現選擇排序法、氣泡排序法、插入排序法
氣泡排序法 l = [10, 1, 18, 30, 23, 12, 7, 5, 18, 17] for n in range(len(l)-1): for i in range(len(l)-n-1): if l[i] > l[i+1]:
java排序演算法—選擇排序(二)
選擇排序 選擇排序的思想方法:快速排序的思想非常直接,正如名字一樣,將要排序的資料元素選出最小的,將它和資料元素的首位交換位置。再次從剩下的資料元素中 找到最小的元素,放到第二個位置上……以此類推,直到將整個資料元素排序。 程式碼實現 public class selectSor
Java演算法——選擇排序
選擇排序 前言 選擇排序的演算法太過複雜,因為每一次都要完全遍歷整個陣列確定了最值才能進行下一次的迴圈,是一種不穩定的排序,時間複雜度是n²,相對來說適用於數量較小的排序中,而不太適用於大量的資料進行排序。 選擇排序描述 選擇排序,就是每次遍歷挑選出來最值和前面的值依次進行交
三種基礎排序演算法(選擇排序、插入排序、氣泡排序)
注: 圖片轉自點選開啟連結 以下均使用升序介紹。 選擇排序: 從陣列中找到最小的元素,和第一個位置的元素互換。 從第二個位置開始,找到最小的元素,和第二個位置的元素互換。 ........ 直到選出array.length