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