###### Python数据结构——查找和排序

1.1线性查找

if key in theArray :
print( "key在 array中." )
else :
print( "key 不在 array中." )

def linearSearch( theValues, target ):
n = len( theValues )
for i in range( n ) :
#如果欲查找的元素存在于列表中，返回Ture
if theValues[i] == target
return True
return False    #如果没找到，返回False

 def sortedLinearSearch( theValues, item ) :
n = len( theValues )
for i in range( n ) :
# 如果欲查找的元素存在于列表中，返回Ture
if theValues[i] == item :
return True
# 如果欲查找的元素大于当前元素, 则不在序列中.
elif theValues[i] > item :
return False

return False # 元素不在序列中.

 def findSmallest( theValues ):
n = len( theValues )
# 假设序列中第一个元素时最小.
smallest = theValues[0]
# 查看序列中其他更小的元素.
for i in range( 1, n ) :
if theList[i] < smallest :
smallest = theValues[i]

return smallest # 返回最小值.


1.2、二分查找

 def binarySearch( theValues, target ) :
low = 0
high = len(theValues) - 1
#重复使用二分法知道找到元素
while low <= high :
# 确定序列中间值.
mid = (high + low) // 2
# 中间值是目标元素么?
if theValues[mid] == target :
return True
# 目标元素小于中间值?
elif target < theValues[mid] :
high = mid - 1
# 目标元素在中间值后面?
else :
low = mid + 1

# 如果序列不能再分，则结束.
return False

2、排序

.

def bubbleSort( theSeq ):
n = len( theSeq )
# Perform n-1 bubble operations on the sequence
for i in range( n - 1 ) :
# Bubble the largest item to the end.
for j in range( i + n - 1 ) :
if theSeq[j] > theSeq[j + 1] : # swap the j and j+1 items.
tmp = theSeq[j]
theSeq[j] = theSeq[j + 1]
theSeq[j + 1] = tmp

.

def selectionSort( theSeq ):
n = len( theSeq )
for i in range( n - 1 ):
# Assume the ith element is the smallest.
smallNdx = i
# Determine if any other element contains a smaller value.
for j in range( i + 1, n ):
if theSeq[j] < theSeq[smallNdx] :
smallNdx = j

# Swap the ith value and smallNdx value only if the smallest value is
# not already in its proper position. Some implementations omit testing
# the condition and always swap the two values.
if smallNdx != i :
tmp = theSeq[i]
theSeq[i] = theSeq[smallNdx]
theSeq[smallNdx] = tmp

def insertionSort( theSeq ):
n = len( theSeq )
# Starts with the first item as the only sorted entry.
for i in range( 1, n ) :
# Save the value to be positioned.
value = theSeq[i]
# Find the position where value fits in the ordered part of the list.
pos = i
while pos > 0 and value < theSeq[pos - 1] :
# Shift the items to the right during the search.
theSeq[pos] = theSeq[pos - 1]
pos -= 1

# Put the saved value into the open slot.
theSeq[pos] = value

3、有序列表

#### python数据结构与算法 29-1 哈希查找

2014-04-22 08:20:16

#### 数据结构与算法--查找与排序（一）

2016-04-22 08:30:31

#### 常用的算法和数据结构分析（查找和排序）

2007-02-14 14:21:00

#### 《数据结构》 查找和排序 实验报告

2010年03月31日 57KB 下载

#### 数据结构——排序查找算法实现

2016-08-18 16:13:03

#### 常用排序和查找算法的原理及python实现

2017-12-13 20:36:57

#### 数据结构查找排序算法总结分析

2013-11-22 22:25:24

#### 数据结构中的树、图、查找、排序

2012年12月21日 2.6MB 下载

#### 数据结构 查找及排序算法、直接插入排序及顺序查找(c语言实现)

2015-12-18 23:14:16

#### 数据结构中排序和查找各种时间复杂度

2013-09-28 23:26:43

## 不良信息举报

Python数据结构——查找和排序