Skip to content

Commit ce0384e

Browse files
author
chenweijie
committed
数组和冒泡排序
1 parent edaf077 commit ce0384e

File tree

3 files changed

+225
-0
lines changed

3 files changed

+225
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.chen.algorithm.exercise;
2+
3+
/**
4+
* 重建二叉树
5+
*
6+
* @author : chen weijie
7+
* @Date: 2019-02-23 1:02 AM
8+
*/
9+
public class BinaryTree {
10+
11+
12+
13+
14+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.chen.algorithm.sort;
2+
3+
/**
4+
* @author : chen weijie
5+
* @Date: 2019-02-26 11:29 PM
6+
*/
7+
public class BubbleSort2 {
8+
9+
10+
public static int[] sort(int[] intArray) {
11+
12+
13+
if (intArray.length == 0) {
14+
return new int[0];
15+
}
16+
//这里for循环表示总共需要比较多少轮
17+
for (int i = 0; i < intArray.length; i++) {
18+
//这里for循环表示每轮比较参与的元素下标
19+
for (int j = 1; j < intArray.length; j++) {
20+
if (intArray[j - 1] > intArray[j]) {
21+
int temp;
22+
temp = intArray[j - 1];
23+
intArray[j - 1] = intArray[j];
24+
intArray[j] = temp;
25+
}
26+
27+
}
28+
System.out.println("第" + i + "次排序完为:");
29+
display(intArray);
30+
}
31+
return intArray;
32+
}
33+
34+
/// 遍历显示数组
35+
public static void display(int[] array) {
36+
for (int anArray : array) {
37+
System.out.print(anArray + " ");
38+
}
39+
System.out.println();
40+
}
41+
42+
43+
public static void main(String[] args) {
44+
int[] array = {3, 0, 1, 90, 2, -1, 4};
45+
sort(array);
46+
System.out.println("最后的结果为:");
47+
display(array);
48+
}
49+
50+
51+
}
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
package com.chen.dataStructure.array;
2+
3+
/**
4+
* @author : chen weijie
5+
* @Date: 2019-02-26 10:57 PM
6+
*/
7+
public class MyArray {
8+
9+
10+
11+
//实现 增、删、查、迭代功能
12+
13+
private int [] intArray;
14+
15+
/**
16+
* 数组的元素的个数
17+
*/
18+
private int elems;
19+
20+
private int length;
21+
22+
/**
23+
* 构造一个长度为50的数组
24+
*/
25+
public MyArray() {
26+
elems = 0;
27+
length = 50;
28+
intArray = new int[length];
29+
}
30+
31+
32+
/**
33+
* 获取数组的有效长度
34+
* @return
35+
*/
36+
public int getSize(){
37+
return elems;
38+
}
39+
40+
41+
/**
42+
* 遍历数组
43+
*/
44+
public void display() {
45+
for (int i = 0; i < elems; i++) {
46+
System.out.println(intArray[i] + " ");
47+
}
48+
}
49+
50+
51+
/**
52+
* 数组中添加元素
53+
*
54+
* @param value
55+
* @return
56+
*/
57+
public boolean add(int value) {
58+
59+
if (length == elems) {
60+
return false;
61+
} else {
62+
intArray[elems] = value;
63+
elems++;
64+
}
65+
return true;
66+
}
67+
68+
69+
/**
70+
* 根据下标获取元素
71+
* @param i
72+
* @return
73+
*/
74+
public int getElems(int i) {
75+
76+
if (i < 0 || i > elems) {
77+
System.out.println("数组下标越界");
78+
}
79+
return intArray[i];
80+
}
81+
82+
83+
/**
84+
* 查找元素 查找的元素如果存在则返回下标值,如果不存在,返回 -1
85+
*
86+
* @return
87+
*/
88+
public int find(int value) {
89+
90+
for (int i = 0; i < elems; i++) {
91+
if (value == intArray[i]) {
92+
return i;
93+
}
94+
}
95+
return -1;
96+
}
97+
98+
99+
/**
100+
* 如果要删除的值不存在,直接返回 false;否则返回true,删除成功
101+
*
102+
* @param value
103+
* @return
104+
*/
105+
public boolean delete(int value) {
106+
107+
int k = find(value);
108+
if (k == -1) {
109+
return false;
110+
} else {
111+
if (k == elems - 1) {
112+
elems--;
113+
} else {
114+
for (int i = 0; i < elems - 1; i++) {
115+
intArray[elems] = intArray[elems + 1];
116+
}
117+
elems--;
118+
}
119+
return true;
120+
}
121+
}
122+
123+
124+
/**
125+
* 修改成功返回true,修改失败返回false
126+
*
127+
* @param oldValue
128+
* @param newValue
129+
* @return
130+
*/
131+
public boolean modify(int oldValue, int newValue) {
132+
int i = find(oldValue);
133+
if (i == -1) {
134+
System.out.println("需要修改的数据不存在");
135+
return false;
136+
} else {
137+
intArray[i] = newValue;
138+
return true;
139+
}
140+
141+
}
142+
143+
public static void main(String[] args) {
144+
145+
MyArray myArray = new MyArray();
146+
myArray.add(1);
147+
myArray.add(12);
148+
myArray.add(13);
149+
myArray.add(14);
150+
myArray.add(15);
151+
152+
myArray.display();
153+
System.out.println("find 12:" + myArray.find(12));
154+
System.out.println("find 10:" + myArray.find(10));
155+
myArray.delete(10);
156+
System.out.println("get i=2 :" + myArray.getElems(2));
157+
System.out.println("size:" + myArray.getSize());
158+
}
159+
160+
}

0 commit comments

Comments
 (0)