# 开源地址
[https://gitee.com/lblbc/simple-works/tree/master/sort/](https://gitee.com/lblbc/simple-works/tree/master/sort/)
> 覆盖语言:C、C++、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。
> 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、前端(微信小程序、uni-app、vue)、后端(Java、Kotlin、NodeJS、Python、PHP、Go、C、C++)、鸿蒙
![](https://img-blog.csdnimg.cn/f7ba5b3299a24d338b8a71eb8cbd99b7.png)
![image](https://img-blog.csdnimg.cn/img_convert/38c89e2baadeed40e6c5353768ae6cf0.png)
# 1. 安卓Java版
开发工具:[下载Android Studio](https://cxyxy.blog.csdn.net/article/details/107098873)
```java
public static void sort(int[] array) {
int first = 0;
int last = array.length - 1;
mergeSort(array, first, last);
}
private static void mergeSort(int[] array, int first, int last) {
if (first < last) {
int mid = (first + last) / 2;
mergeSort(array, first, mid);
mergeSort(array, mid + 1, last);
binaryMerge(array, first, mid, last);
}
}
public static void binaryMerge(int[] array, int first, int mid, int last) {
int[] tmpArray = new int[array.length];
int left, right, index;
for (index = first; index <= last; index++) {
tmpArray[index] = array[index];
}
index = first;
left = first;
right = mid + 1;
for (; left <= mid && right <= last && index <= last; index++) {
if (tmpArray[left] <= tmpArray[right]) {
array[index] = tmpArray[left++];
} else {
array[index] = tmpArray[right++];
}
}
while (left <= mid) {
array[index++] = tmpArray[left++];
}
while (right <= last) {
array[index++] = tmpArray[right++];
}
}
```
![image](https://img-blog.csdnimg.cn/img_convert/8a816baa9ad1e0cbd5bd0f503cd38601.png)
# 2. 安卓Kotlin版
开发工具:[下载Android Studio](https://cxyxy.blog.csdn.net/article/details/107098873)
```kotlin
fun sort(array: IntArray) {
val first = 0
val last = array.size - 1
mergeSort(array, first, last)
}
private fun mergeSort(array: IntArray, first: Int, last: Int) {
if (first < last) {
val mid = (first + last) / 2
mergeSort(array, first, mid)
mergeSort(array, mid + 1, last)
binaryMerge(array, first, mid, last)
}
}
fun binaryMerge(array: IntArray, first: Int, mid: Int, last: Int) {
val tmpArray = IntArray(array.size)
var left: Int
var index = first
while (index <= last) {
tmpArray[index] = array[index]
index++
}
index = first.also { left = it }
var right = mid + 1
while (left <= mid && right <= last && index <= last) {
if (tmpArray[left] <= tmpArray[right]) {
array[index] = tmpArray[left++]
} else {
array[index] = tmpArray[right++]
}
index++
}
while (left <= mid) array[index++] = tmpArray[left++]
while (right <= last) array[index++] = tmpArray[right++]
}
```
![image](https://img-blog.csdnimg.cn/img_convert/f3a5f272743f38ec5f3d8e6ec4940a02.png)
# 3. NodeJS
开发工具:[下载Visual Studio Code](https://cxyxy.blog.csdn.net/article/details/128722652)
```js
function sort() {
let array = [2, 1, 5, 4, 3]
var first = 0
var last = array.length - 1
mergeSort(array,first, last)
}
function mergeSort(array,first, last) {
if (first < last) {
var mid = Math.floor((first + last) / 2)
mergeSort(array,first, mid)
mergeSort(array,mid + 1, last)
binaryMerge(array,first, mid, last)
}
}
function binaryMerge(array,first, mid, last) {
var tmpArray = Array(array.length).fill(0)
var left, right, index
for (index = first; index <= last; index++) {
tmpArray[index] = array[index]
}
index = first
left = first
right = mid + 1
for (; left <= mid && right <= last && index <= last; index++) {
if (tmpArray[left] <= tmpArray[right]) {
array[index] = tmpArray[left++]
} else {
array[index] = tmpArray[right++]
}
}
while (left <= mid) {
array[index++] = tmpArray[left++]
}
while (right <= last) {
array[index++] = tmpArray[right++]
}
}
```
![image](https://img-blog.csdnimg.cn/img_convert/f92c98533aaf6264fdaf8227f94de76b.png)
# 4. Php
开发工具:[下载Visual Studio Code](https://cxyxy.blog.csdn.net/article/details/128722652)
```php
public function sort()
{
$array = [2, 1, 5, 4, 3];
$start = 0;
$end = count($array) - 1;
$this->sortMe($array, $start, $end);
return var_dump($array);
}
private function sortMe(&$arr, $start, $end)
{
if ($start < $end) {
$mid = floor(($start + $end) / 2);
$this->sortMe($arr, $start, $mid);
$this->sortMe($arr, $mid + 1, $end);
$this->mergeSort($arr, $start, $mid, $end);
}
}
private function mergeSort(&$arr, $start, $mid, $end)
{
$i = $start;
$j = $mid + 1;
$tmp = [];
while ($i <= $mid && $j <= $end) {
if ($arr[$i] <= $arr[$j]) {
$tmp[] = $arr[$i++];
} else {
$tmp[] = $arr[$j++];
}
}
while ($i <= $mid) {
$tmp[] = $arr[$i++];
}
while ($j <= $end) {
$tmp[] = $arr[$j++];
}
for ($k = 0; $k < count($tmp); $k++) {
$arr[$k + $start] = $tmp[$k];
}
}
```
![image](https://img-blog.csdnimg.cn/img_convert/749b42523743051e6bb61f899664e4e8.png)
# 5. Python
开发工具:[下载PyCharm](https://cxyxy.blog.csdn.net/article/details/128722649)
```python
array = [2, 1, 5, 4, 3]
def merge(left, mid, right):
start = mid - left + 1
end = right - mid
left_arr = [0] * start
right_arr = [0] * end
for i in range(0, start):
left_arr[i] = array[left + i]
for j in range(0, end):
right_arr[j] = array[mid + 1 + j]
i = 0
j = 0
k = left
while i < start and j < end:
if left_arr[i] <= right_arr[j]:
array[k] = left_arr[i]
i += 1
else:
array[k] = right_arr[j]
j += 1
k += 1
while i < start:
array[k] = left_arr[i]
i += 1
k += 1
while j < end:
array[k] = right_arr[j]
j += 1
k += 1
def sort(left, right):
if left < right:
m = int((left + (right - 1)) / 2)
sort(left, m)
sort(m + 1, right)
merge(left, m, right)
```
![image](https://img-blog.csdnimg.cn/img_convert/5c9aa2875387231270deb615fea84aec.png)
# 6. Swift(SwiftUI版)
开发工具:XCode(mac电脑自带)
```swift
var array = [2, 1, 5, 4, 3]
func sort() {
sortMe(arr: &array, left: 0, right: array.count - 1)
}
func sortMe(arr:inout [Int],left:Int,right:Int) {
if left == right {
return
}
let mid = left + (right - left) >> 1
sortMe(arr: &arr, left: left, right: mid)
sortMe(arr: &arr, left: mid + 1, right: right)
mergeSort(arr: &arr, left: left, mid: mid, right: right)
}
func mergeSort(arr:inout [Int],left:Int,mid:Int,right:Int){
var tmpArr:[Int] = [Int]()
var leftLocation:Int = left
var rightLocation:Int = mid + 1
while (leftLocation <= mid && rightLocation <= right) {
if arr[leftLocation] <= arr[rightLocation] {
tmpArr.append(arr[leftLocation])
leftLocation += 1
}else{
tmpArr.append(arr[rightLocation])
rightLocation += 1
}
}
while leftLocation <= mid {
tmpArr.append(arr[leftLocation])
leftLocation += 1
}
while rightLocation <= right {
tmpArr.append(arr[rightLocation])
rightLocation += 1
}
var index = left
没有合适的资源?快使用搜索试试~ 我知道了~
排序算法.冒泡排序桶排序.计数排序.堆排序.插入排序.合并排序.快速排序基数排序选择排序希尔排序.zip
共35个文件
md:12个
gitignore:11个
py:10个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 125 浏览量
2024-04-27
03:41:17
上传
评论
收藏 48KB ZIP 举报
温馨提示
直接插入排序 直接插入排序(Straight Insertion Sort)是一种简单且古老的排序算法,其基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。12 直接插入排序的算法过程如下: 假设待排序序列的第一个元素(或几个元素)已经有序。 从第二个元素开始,逐个将每个元素视作待插入元素。 将待插入元素与它前面的已排序元素逐个进行比较。 如果待插入元素小于或等于前一个元素,则将其插入到该位置。 如果待插入元素大于前一个元素,则继续与前一个元素比较,直到找到合适的位置插入。 重复这个过程,直到所有元素都被处理。 直接插入排序的时间复杂度为O(n^2),其中n是待排序元素的数量。这是因为对于每个待插入元素,都需要进行至多n-1次比较。直接插入排序的空间复杂度为O(1),因为它不需要额外的存储空间。此外,直接插入排序是稳定的,即相等的元素在排序后保持原有的相对顺序。 直接插入排序适用于待排序序列较小或基本有序的情况,因为它在处理小规模数据时效率较高,且在处理有序或基本有序的数据时性能优于其他一些排序算法。
资源推荐
资源详情
资源评论
收起资源包目录
排序算法.冒泡排序桶排序.计数排序.堆排序.插入排序.合并排序.快速排序基数排序选择排序希尔排序.zip (35个子文件)
新建文本文档.txt 1KB
sort_algorithm_python-master
README_CN.md 869B
radixSort
sort_python
.gitignore 70B
README.md 19KB
lblbc.py 642B
quickSort
sort_python
.gitignore 70B
README.md 13KB
lblbc.py 743B
shellSort
sort_python
.gitignore 70B
README.md 12KB
lblbc.py 641B
bucketSort
sort_python
.gitignore 70B
README.md 15KB
lblbc.py 672B
LICENSE 70B
countSort
sort_python
.gitignore 70B
README.md 8KB
lblbc.py 562B
heapSort
sort_python
.gitignore 70B
README.md 16KB
lblbc.py 860B
.gitignore 16B
bubbleSort
sort_python
.gitignore 70B
README.md 8KB
lblbc.py 524B
mergeSort
sort_python
.gitignore 70B
README.md 21KB
lblbc.py 1KB
README.md 1KB
insertionSort
sort_python
.gitignore 70B
README.md 10KB
lblbc.py 640B
selectionSort
sort_python
.gitignore 70B
README.md 13KB
lblbc.py 661B
共 35 条
- 1
资源评论
野生的狒狒
- 粉丝: 3396
- 资源: 2436
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功