Skip to content

Commit f7dbe26

Browse files
authored
Rename MajorityElement.py to MajorityElement2.py
1 parent 779541b commit f7dbe26

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Copyright (c) Oct 22, 2018 CareerMonk Publications and others.
2+
# E-Mail : info@careermonk.com
3+
# Creation Date : 2014-01-10 06:15:46
4+
# Last modification : 2008-10-31
5+
# by : Narasimha Karumanchi
6+
# Book Title : Data Structures And Algorithmic Thinking With Python
7+
# Warranty : This software is provided "as is" without any
8+
# warranty; without even the implied warranty of
9+
# merchantability or fitness for a particular purpose.
10+
11+
def majority1(A):
12+
n = len(A)
13+
for element in A:
14+
count = 0
15+
for e in A:
16+
if (element == e):
17+
count += 1
18+
if (count > n//2):
19+
return element
20+
def majority2(A):
21+
A.sort()
22+
max_count = 1
23+
majority_element = A[0]
24+
count = 1
25+
element = A[0]
26+
for i in range(1, len(A)):
27+
if A[i] == element:
28+
count += 1
29+
else:
30+
if count > max_count:
31+
max_count = count
32+
majority_element = element
33+
count = 1
34+
element = A[i]
35+
def majority3(A):
36+
A.sort()
37+
max_count = 1
38+
for i in range(len(A)-1):
39+
if A[i] == A[i+1]:
40+
max_count += 1
41+
else:
42+
max_count = 1
43+
if max_count > len(A)//2:
44+
return A[i], max_count
45+
46+
def majority4(A):
47+
A.sort()
48+
n = len(A)
49+
return A[n//2]
50+
51+
def majority5(A):
52+
count = 0
53+
element = -1
54+
n = len(A)
55+
for i in range(0, n - 1):
56+
if(count == 0):
57+
element = A[i]
58+
count = 1
59+
elif(element == A[i]):
60+
count += 1
61+
else:
62+
count -= 1
63+
return element, count
64+
65+
print majority5([1,2,3])
66+
#print majority5([3,2,1,3,1,3,3,3,4,4,4,4])
67+
#print majority5([3,2,1,3,1,3,3,3])
68+
#print majority5([3,2,3,3,1,3,3,3,4,4,4,4,4])

0 commit comments

Comments
 (0)