部落格:
氣泡排序的思想: 每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置
比如有五個數: 12, 35, 99, 18, 76, 從大到小排序, 對相鄰的兩位進行比較
經過第一趟比較後, 五個數中最小的數已經在最後面了, 接下來只比較前四個數, 依次類推
氣泡排序原理: 每一趟只能將乙個數歸位, 如果有n個數進行排序,只需將n-1個數歸位, 也就是說要進行n-1趟操作(已經歸位的數不用再比較)
#!/usr/bin/env python
# coding:utf-8
defbubblesort(nums):
for i in range(len(nums)-1): # 這個迴圈負責設定氣泡排序進行的次數
for j in range(len(nums)-i-1): # j為列表下標
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
nums = [5,2,45,6,8,2,1]
print bubblesort(nums)
缺點: 氣泡排序解決了桶排序浪費空間的問題, 但是氣泡排序的效率特別低
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。
如:n=3時,3個整數13,312,343,連成的最大整數為34331213。
如:n=4時,4個整數7,13,4,246連線成的最大整數為7424613。
有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n(n<=100),第二行包含n個數(每個數不超過1000,空格分開)。本人解法,使用類似氣泡排序的方式
second = [123,345,444,444412,897,999,456]for ii in range(len(second)-1):
for i in range(len(second)-1):
num1 = int(str(second[i])+str(second[i+1]))
num2 = int(str(second[i+1])+str(second[i]))
# print(num1,num2,num1-num2)
if num1氣泡排序的思想: 每次比較兩個相鄰的元素, 如果他們的順序錯誤就把他們交換位置
比如有五個數: 12, 35, 99, 18, 76, 從大到小排序, 對相鄰的兩位進行比較
經過第一趟比較後, 五個數中最小的數已經在最後面了, 接下來只比較前四個數, 依次類推
氣泡排序原理: 每一趟只能將乙個數歸位, 如果有n個數進行排序,只需將n-1個數歸位, 也就是說要進行n-1趟操作(已經歸位的數不用再比較)
#!/usr/bin/env python
# coding:utf-8
defbubblesort(nums):
for i in range(len(nums)-1): # 這個迴圈負責設定氣泡排序進行的次數
for j in range(len(nums)-i-1): # j為列表下標
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
nums = [5,2,45,6,8,2,1]
print bubblesort(nums)
缺點: 氣泡排序解決了桶排序浪費空間的問題, 但是氣泡排序的效率特別低
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。
如:n=3時,3個整數13,312,343,連成的最大整數為34331213。
如:n=4時,4個整數7,13,4,246連線成的最大整數為7424613。
有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n(n<=100),第二行包含n個數(每個數不超過1000,空格分開)。本人解法,使用類似氣泡排序的方式
second = [123,345,444,444412,897,999,456]for ii in range(len(second)-1):
for i in range(len(second)-1):
num1 = int(str(second[i])+str(second[i+1]))
num2 = int(str(second[i+1])+str(second[i]))
# print(num1,num2,num1-num2)
if num1second[i+1],second[i] = second[i],second[i+1]
print(2222,second)
趣味演算法 水仙花數
趣味演算法 水仙花數 乙個n位正整數 n 3 它的每個位上得數字的n次冪之和等於它本身。1 計算當前正整數的位數 2 計算每個位數上n次冪的和 3 判斷是否為水仙花數。include include include 0 the number is not narcissus number 1 the...
小演算法 水仙花數
水仙花數是指乙個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身。例如 1 3 5 3 3 3 153 初步 int nmax 9999999 int nresult 9999 int ncount 0 for int i 0 i nmax i else if i 100 else ...
Java演算法之「水仙花數」
列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。分析 水仙花數首先是個三位數,即在100 999這個範圍內選出所謂的 水仙花數 然後各個位數分別進行立方運算,然後再求和,並且等於其本身。假設乙個水仙花數為i,先將其各個位上的數依次摘出來,然後求平方和,即,i 1...