Tất nhiên, sử dụng
[1, 19]
[1, 1]
[-2, 7]
2 sẽ đáng tin cậy, viết nhanh và hiệu suất cao cho các danh sách có kích thước vừa phải vì nó được tích hợp. Đối với các danh sách lớn, một thuật toán O [n] sẽ nhanh hơn, ví dụ:def minmax1 [x]:
# this function fails if the list length is 0
minimum = maximum = x[0]
for i in x[1:]:
if i < minimum:
minimum = i
else:
if i > maximum: maximum = i
return [minimum,maximum]
print[minmax1[[9,8,7,6,5,4,3,2,1,11,12,13,14,15,16,17,18,19]]]
print[minmax1[[1]]]
print[minmax1[[2, 0, 2, 7, 5, -1, -2]]]
... mà đầu ra là:
[1, 19]
[1, 1]
[-2, 7]
Tôi đã quan tâm để kiểm tra hiệu suất của hai lựa chọn thay thế. Trên PC của tôi chạy Windows XP và Python 3.2.3 của tôi, tôi thấy rằng phương pháp sắp xếp nhanh hơn hàm
[1, 19]
[1, 1]
[-2, 7]
3 được xác định ở trên cho danh sách ít hơn 500 phần tử, nhưng đối với danh sách dài hơn, O [N] [1, 19]
[1, 1]
[-2, 7]
3 nhanh hơn. Mã kiểm tra thời gian của tôi như sau:def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
Chúng tôi được cung cấp một danh sách các số và nhiệm vụ của chúng tôi là viết một chương trình Python để tìm số nhỏ nhất trong danh sách đã cho. Đối với chương trình sau đây, chúng tôi có thể sử dụng các phương thức khác nhau bao gồm phương thức Min tích hợp, sắp xếp mảng & nbsp; và trả về phần tử cuối cùng, v.v., ví dụ: & nbsp;
Example:
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 1
Sắp xếp danh sách để tìm số nhỏ nhất trong danh sách
Theo thứ tự tăng dần
Ở đây viết một chương trình Python nơi chúng tôi đang sắp xếp toàn bộ danh sách và sau đó trả lại phần tử đầu tiên vì nó sẽ là yếu tố nhỏ nhất có trong danh sách.
Python3
[1, 19]
[1, 1]
[-2, 7]
5[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
7[1, 19]
[1, 1]
[-2, 7]
8[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
0[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
222def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
8def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 11
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 12
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 13
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 14
Output:
smallest element is: 4
Thứ tự giảm dần
Ở đây chúng tôi đang sắp xếp bằng cách sử dụng hàm sort [] toàn bộ danh sách và sau đó trả về phần tử cuối cùng vì nó sẽ là phần tử nhỏ nhất có trong danh sách.
Python3
[1, 19]
[1, 1]
[-2, 7]
5[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
7[1, 19]
[1, 1]
[-2, 7]
8[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
0[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
222smallest element is: 48
[1, 19]
[1, 1]
[-2, 7]
6smallest element is: 40
smallest element is: 41
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 11
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 12
smallest element is: 46
smallest element is: 47
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 14
Output:
smallest element is: 4
Thứ tự giảm dần
Ở đây chúng tôi đang sắp xếp bằng cách sử dụng hàm sort [] toàn bộ danh sách và sau đó trả về phần tử cuối cùng vì nó sẽ là phần tử nhỏ nhất có trong danh sách.
Python3
Sử dụng phương thức min [] & nbsp; để tìm số nhỏ nhất trong danh sách
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 11
[1, 19]
[1, 1]
[-2, 7]
9Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 116
Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 117
Output:
Smallest element is: 1
Ở đây chúng tôi đang sử dụng phương thức Min và sau đó trả về phần tử nhỏ nhất có trong danh sách.
Python3
[1, 19]
[1, 1]
[-2, 7]
5[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
7[1, 19]
[1, 1]
[-2, 7]
8[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
0[1, 19]
[1, 1]
[-2, 7]
9smallest element is: 47
[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
4[1, 19]
[1, 1]
[-2, 7]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
6def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
7Tìm phần tử danh sách tối thiểu cho danh sách do người dùng xác định
[1, 19]
[1, 1]
[-2, 7]
5[1, 19]
[1, 1]
[-2, 7]
6 List: 23,-1,45,22.6,78,100,-50
List: 23,-1,45,22.6,78,100,-51
[1, 19]
[1, 1]
[-2, 7]
6 List: 23,-1,45,22.6,78,100,-53
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
List: 23,-1,45,22.6,78,100,-55
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10 ____878788
The list is ['23', '-1', '45', '22.6', '78', '100','-5'] The smallest element in the list is -59
[1, 19]
[1, 1]
[-2, 7]
09def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 11
[1, 19]
[1, 1]
[-2, 7]
9Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 116
Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 117
Output:
Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 11
List: 23,-1,45,22.6,78,100,-5
9 The list is ['23', '-1', '45', '22.6', '78', '100','-5']
The smallest element in the list is -5
0The list is ['23', '-1', '45', '22.6', '78', '100','-5']
The smallest element in the list is -5
1 The list is ['23', '-1', '45', '22.6', '78', '100','-5']
The smallest element in the list is -5
2______
Python3
The list is ['23', '-1', '45', '22.6', '78', '100','-5'] The smallest element in the list is -59
[1, 19]
[1, 1]
[-2, 7]
00[1, 19]
[1, 1]
[-2, 7]
6 List: 23,-1,45,22.6,78,100,-53
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
List: 23,-1,45,22.6,78,100,-55
Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
[1, 19]
[1, 1]
[-2, 7]
06List: 23,-1,45,22.6,78,100,-58
Tìm phần tử nhỏ nhất trong danh sách so sánh mọi yếu tố
[1, 19]
[1, 1]
[-2, 7]
16[1, 19]
[1, 1]
[-2, 7]
6[1, 19]
[1, 1]
[-2, 7]
18List: 23,-1,45,22.6,78,100,-53
[1, 19]
[1, 1]
[-2, 7]
20______89def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
[1, 19]
[1, 1]
[-2, 7]
32[1, 19]
[1, 1]
[-2, 7]
33[1, 19]
[1, 1]
[-2, 7]
34[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
36Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 13
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
7[1, 19]
[1, 1]
[-2, 7]
49[1, 19]
[1, 1]
[-2, 7]
34[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
52def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
[1, 19]
[1, 1]
[-2, 7]
55[1, 19]
[1, 1]
[-2, 7]
56Input:
List: 23,-1,45,22.6,78,100,-5
Output:
The list is ['23', '-1', '45', '22.6', '78', '100','-5'] The smallest element in the list is -5
Sử dụng chức năng Lambda để tìm số nhỏ nhất trong danh sách
Ở đây chúng tôi đang sử dụng chức năng Lambda để in số nhỏ nhất có trong danh sách.
Python3
[1, 19]
[1, 1]
[-2, 7]
57[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
7def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
0[1, 19]
[1, 1]
[-2, 7]
9[1, 19]
[1, 1]
[-2, 7]
8__19Các
Output:
[1, 19]
[1, 1]
[-2, 7]
0Sử dụng hàm liệt kê để tìm số nhỏ nhất trong danh sách
Ở đây chúng tôi đang lặp lại trong danh sách bằng cách sử dụng hàm liệt kê [] và trả về phần tử cuối cùng.
Python3
[1, 19]
[1, 1]
[-2, 7]
57[1, 19]
[1, 1]
[-2, 7]
6 [1, 19]
[1, 1]
[-2, 7]
7def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
0[1, 19]
[1, 1]
[-2, 7]
9[1, 19]
[1, 1]
[-2, 7]
8__19Các
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
02Output:
[1, 19]
[1, 1]
[-2, 7]
0Sử dụng hàm liệt kê để tìm số nhỏ nhất trong danh sách
Ở đây chúng tôi đang lặp lại trong danh sách bằng cách sử dụng hàm liệt kê [] và trả về phần tử cuối cùng.
[1, 19]
[1, 1]
[-2, 7]
92[1, 19]
[1, 1]
[-2, 7]
6 Enter number of elements in list: 4
Enter elements: 12
Enter elements: 19
Enter elements: 11
Enter elements: 99
Smallest element is: 11
6[1, 19]
[1, 1]
[-2, 7]
95List: 23,-1,45,22.6,78,100,-5
9 [1, 19]
[1, 1]
[-2, 7]
97The list is ['23', '-1', '45', '22.6', '78', '100','-5']
The smallest element in the list is -5
1
[1, 19]
[1, 1]
[-2, 7]
[1, 19]
[1, 1]
[-2, 7]
[1, 19]
[1, 1]
[-2, 7]
[1, 19]
[1, 1]
[-2, 7]
Sử dụng chức năng giảm để tìm số nhỏ nhất trong danh sách
Ở đây chúng tôi đang lặp lại trong danh sách bằng cách sử dụng hàm giảm [] và trả về phần tử nhỏ nhất.
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
9Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
06Input : list1 = [10, 20, 4] Output : 4 Input : list2 = [20, 10, 20, 1, 100] Output : 10
Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 11 Enter elements: 99 Smallest element is: 116
def minmax_sort[x]:
x = sorted[x]
return [x[0],x[-1]]
import timeit
aa = list[range[0,100]]
a = aa
while [1]:
stime = min[timeit.repeat['minmax_sort[a]', "from __main__ import minmax_sort,a",number=1000]]
mtime = min[timeit.repeat['minmax1[a]', "from __main__ import minmax,a",number=1000]]
if [stime > mtime]:
break
else:
a = a + aa
print[len[a]]
25