演算法和資料結構(三) 常用演算法之選擇排序法

2021-08-22 04:42:18 字數 1299 閱讀 9257

n個記錄的檔案的直接選擇排序可經過n-1趟直接選擇排序得到有序結果:

①初始狀態:無序區為r[1..n],有序區為空。

②第1趟排序

在無序區r[1..n]中選出關鍵字最小的記錄r[k],將它與無序區的第1個記錄r[1]交換,使r[1..1]和r[2..n]分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

③第i趟排序

第i趟排序開始時,當前有序區和無序區分別為r[1..i-1]和r(i..n)。該趟排序從當前無序區中選出關鍵字最小的記錄 r[k],將它與無序區的第1個記錄r交換,使r[1..i]和r分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

void selectionsort(int array, int array_len)

}

if(index_tmp != times -1)

}

return;

}

#!/usr/bin/env python

# -*- coding:utf-8 -*-

'''# @author = jasonzhou

# @file : selectsort.py

# @date : 2018/8/3

'''class selcetsort(object):

'''公升序排列陣列,選擇排序法'''

def __init__(self, array):

assert array != none

self.array = array

self.array_len = len(array)

def sort(self):

for times in range(1, self.array_len):

tmp = self.array[times - 1]

for index in range(times, self.array_len):

if self.array[index] < tmp:

index_tmp = index

tmp = self.array[index]

self.array[index_tmp] = self.array[times-1]

self.array[times-1] = tmp

def show(self):

print("now the array is:"),

for item in self.array:

print(item),

print("")

常用演算法和資料結構

氣泡排序 氣泡排序 每趟冒出乙個最大數 最小數 每次執行數量 總數量 執行的趟數 已冒出 public void bubblesort 選擇排序 選擇排序 每趟選擇乙個最大數 最小數 每次執行數量 總數量 執行的趟數 已選出 public void selectsort if i min displ...

iOS常用演算法和資料結構

1.集合結構 線性結構 樹形結構 圖形結構 1.1 集合結構 就是乙個集合,就是乙個圓圈中有很多個元素,元素與元素之間沒有任何關係 1.2 線性結構 就是乙個條線上站著很多個人。這條線不一定是直的。也可以是彎的。也可以是值的 相當於一條線被分成了好幾段的樣子。線性結構是一對一的關係。1.3 樹形結構...

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...