Skip to content

Commit 52d5fe7

Browse files
committed
add shell sort cpp program
add shell sort cpp program
1 parent 18e2630 commit 52d5fe7

File tree

3 files changed

+33
-5
lines changed

3 files changed

+33
-5
lines changed

1.bubbleSort.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323

2424
## 3. C++代码实现
25+
2526
```cpp
2627
/*
2728
冒泡排序,升序排列

3.insertionSort.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
![动图演示](res/insertionSort.gif)
1818

1919
## 3. C++代码实现
20+
2021
```cpp
2122
void changeValue(int *a, int *b)
2223
{

4.shellSort.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,34 @@
1818

1919
3. 每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别对各子表进行直接插入排序。仅增量因子为 1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。
2020

21+
## 2. C++代码实现
2122

22-
## 2. JavaScript 代码实现
23+
```cpp
24+
vector<int> AlgorithmSort::shellSort(vector<int> vec)
25+
{
26+
int gap = 1;
27+
while (gap < vec.size()) {
28+
gap = gap * 3 + 1;
29+
}
30+
31+
while (gap > 0) {
32+
for (int i = gap; i < vec.size(); i++) {
33+
int tmp = vec[i];
34+
int j = i - gap;
35+
while (j >= 0 && vec[j] > tmp) {
36+
vec[j + gap] = vec[j];
37+
j -= gap;
38+
}
39+
vec[j + gap] = tmp;
40+
}
41+
gap = (int)(gap / 3);
42+
}
43+
44+
return vec;
45+
}
46+
```
47+
48+
## 3. JavaScript 代码实现
2349
2450
```js
2551
function shellSort(arr) {
@@ -42,7 +68,7 @@ function shellSort(arr) {
4268
}
4369
```
4470

45-
## 3. Python 代码实现
71+
## 4. Python 代码实现
4672

4773
```python
4874
def shellSort(arr):
@@ -63,7 +89,7 @@ def shellSort(arr):
6389
}
6490
```
6591

66-
## 4. Go 代码实现
92+
## 5. Go 代码实现
6793

6894
```go
6995
func shellSort(arr []int) []int {
@@ -88,7 +114,7 @@ func shellSort(arr []int) []int {
88114
}
89115
```
90116

91-
## 5. Java 代码实现
117+
## 6. Java 代码实现
92118

93119
```java
94120
public class ShellSort implements IArraySort {
@@ -121,7 +147,7 @@ public class ShellSort implements IArraySort {
121147
}
122148
```
123149

124-
## 6. PHP 代码实现
150+
## 7. PHP 代码实现
125151

126152
```php
127153
function shellSort($arr)

0 commit comments

Comments
 (0)