插入排序,分别用汇编语言,C语言,C++,java,python编写出来
- 从第一个元素开始,可以认为第一个元素已经排好顺序。
- 取出后面一个元素 n,在前面已经排好顺序的数组里从尾部往头部遍历,假设取出来的元素为 nums,如果 num>n,那么将 nums 移动到后面一个位置,直到找到已经排序的元素小于或者等于新元素的位置,将 n 放到新空出来的位置上。如果没有找到,那么 nums 就是最小的元素,放在第一个位置。
- 重复上面的步骤 2,直到所有元素都插入到正确的位置。
插入排序,分别用汇编语言,C语言,C++,java,python编写出来
当然!以下是插入排序算法的示例代码,分别使用汇编语言、C语言、C++、Java和Python编写:
1. 汇编语言(x86汇编):
assembly
section .data
array db 64, 25, 12, 22, 11
length equ $ – array
section .text
global _start
_start:
mov ecx, length
dec ecx
outer_loop:
mov esi, ecx
mov al, [array + esi]
mov edi, esi
inner_loop:
cmp edi, length
je skip_shift
mov dl, [array + edi + 1]
mov [array + edi + 1], al
mov al, dl
inc edi
jmp inner_loop
skip_shift:
mov [array + edi + 1], al
dec ecx
jnz outer_loop
; 输出排序后的数组
mov ecx, length
mov esi, 0
print_loop:
movzx eax, byte [array + esi]
add eax, ‘0’
push eax
push msg_digit
call printf
add esp, 8
inc esi
loop print_loop
; 退出程序
2. C语言:
#include <stdio.h>
void insertionSort(int arr[], int n) {
int i, j, key;
for (i = 1; i < n; i++) {
key = arr[i];
j = i – 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j – 1;
}
arr[j + 1] = key;
}
}
3. C++:
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) {
int i, j, key;
for (i = 1; i < n; i++) {
key = arr[i];
j = i – 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j – 1;
}
arr[j + 1] = key;
}
}
4. Java:
public class InsertionSort {
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i – 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j – 1;
}
arr[j + 1] = key;
}
}}
5. Python:
def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i – 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j = j – 1
arr[j + 1] = key
这些示例代码展示了如何使用不同的编程语言实现插入排序算法。请根据您的需求和偏好选择适合您的语言。
扫码关注微信公众号,免费查看完整算法内容。
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » 插入排序,分别用汇编语言,C语言,C++,java,python编写出来