Skip to content

Commit af8bf1b

Browse files
committed
add sort.
1 parent bff2228 commit af8bf1b

6 files changed

Lines changed: 114 additions & 0 deletions

File tree

‎.vscode/launch.json‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"configurations": [
3+
{
4+
"type": "java",
5+
"name": "CodeLens (Launch) - App",
6+
"request": "launch",
7+
"mainClass": "App",
8+
"projectName": "Javascript Algorithm_723097d"
9+
}
10+
]
11+
}

‎Java/sort/BubbleSort‎

Whitespace-only changes.

‎JavaScript/Sort/BubbleSort.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports = function BubbleSort(nums) {
2+
if(nums === null || nums.length <=1) return;
3+
for(var i = nums.length - 1; i > 0; i--) {
4+
for(var j = 0; j < i; j++) {
5+
if(nums[j] > nums[j+1]) {
6+
var t = nums[j];
7+
nums[j] = nums[j+1];
8+
nums[j+1] = t;
9+
}
10+
}
11+
}
12+
}
13+
14+
15+

‎JavaScript/Sort/InsertSort.js‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module.exports = function InsertSort(nums) {
2+
if(nums === null || nums.length <= 1) return;
3+
for(var i = 1; i < nums.length; i++) {
4+
for(var j = i-1; j >= 0 && nums[j] > nums[j+1];j--) {
5+
swap(nums, j, j+1);
6+
}
7+
}
8+
}
9+
10+
function swap(nums, a, b) {
11+
var t = nums[a];
12+
nums[a] = nums[b];
13+
nums[b] = t;
14+
}

‎JavaScript/Sort/SelectSort.js‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = function SelectSort(nums) {
2+
if(nums === null || nums.length <= 1) return;
3+
for(var i = 0; i < nums.length; i++) {
4+
var minIndex = i;
5+
for(var j = i+1; j < nums.length; j++) {
6+
if(nums[j] < nums[minIndex]) {
7+
minIndex = j;
8+
}
9+
}
10+
if(minIndex !== i) {
11+
var t = nums[minIndex];
12+
nums[minIndex] = nums[i];
13+
nums[i] = t;
14+
}
15+
}
16+
}

‎JavaScript/Sort/Test.js‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
var BubbleSort = require('./BubbleSort');
2+
var InsertSort = require('./InsertSort');
3+
var SelectSort = require('./SelectSort');
4+
5+
function generateRandomAray(maxSize, maxValue) {
6+
var n = parseInt((maxSize+1)*Math.random());
7+
var res = new Array();
8+
for(var i = 0; i < n; i++) {
9+
res[i] = parseInt((maxValue+1)*Math.random());
10+
}
11+
return res;
12+
}
13+
14+
function isEqual(arr1, arr2) {
15+
if((arr1 === null && arr2 !== null) || (arr1 !== null && arr2 === null)) {
16+
return false;
17+
}
18+
if(arr1 === null && arr2 === null) {
19+
return true;
20+
}
21+
if(arr1.length !== arr2.length) {
22+
return false;
23+
}
24+
for(var i = 0; i < arr1.length; i++) {
25+
if(arr1[i] !== arr2[i])
26+
return false;
27+
}
28+
return true;
29+
}
30+
31+
function printArray(nums) {
32+
if(nums === null) return;
33+
var s = "";
34+
for(var i = 0; i < nums.length; i++) {
35+
s += nums[i]+ " ";
36+
}
37+
}
38+
39+
function comparator(nums) {
40+
nums.sort((a, b) => a - b);
41+
}
42+
// 测试
43+
44+
var testTime = 1000;
45+
var maxSize = 100;
46+
var maxValue = 100;
47+
var succeed = true;
48+
for(var i = 0; i < testTime; i++) {
49+
var arr1 = generateRandomAray(maxSize, maxValue);
50+
var arr2 = [...arr1];
51+
SelectSort(arr1);
52+
comparator(arr2);
53+
if(!isEqual(arr1, arr2)) {
54+
succeed = false;
55+
break;
56+
}
57+
}
58+
console.log(succeed ? "Nice!" : "Fucking fucked!");

0 commit comments

Comments
 (0)