当前位置:网站首页>TZC 1283: 简单排序 —— 插入排序
TZC 1283: 简单排序 —— 插入排序
2022-07-19 18:12:00 【橙子教师】
我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法。冒泡排序原理请参见:https://zhuanlan.zhihu.com/p/122293204 或 https://www.runoob.com/w3cnote/insertion-sort.html
原题链接:1283: 简单排序
python 代码如下:
# 插入排序
def insertion_sort(arr):
for a in range(len(arr)):
pre_index = a - 1
current = arr[a]
while pre_index >= 0 and arr[pre_index] > current:
arr[pre_index + 1] = arr[pre_index]
pre_index -= 1
arr[pre_index + 1] = current
return arr
T = int(input())
for i in range(T):
s = input().split()
lt = [int(x) for x in s]
lt1 = lt[::-1]
lt1.pop()
n = len(lt1)
insertion_sort(lt1)
for j in range(n):
if j != n - 1:
print(lt1[j], end=' ')
else:
print(lt1[j])
C语言代码如下:
#include <stdio.h>
#include <string.h>
#define N 1010
// 插入排序
void InsertSort(int arr[], int len)
{
int i,j,tmp;
// 检查数据合法性
if(arr==NULL || len<=0)
return;
for(i=1; i<len; i++)
{
tmp=arr[i];
for(j=i-1; j>=0; j--)
{
//如果比tmp大把值往后移动一位
if(arr[j]>tmp)
arr[j+1] = arr[j];
else
break;
}
arr[j+1]=tmp;
}
}
int main()
{
int m,n,i,j,t,a[N];
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
memset(a,0,n); //初始化数组
for(i=0;i<=n-1;i++) //输入
scanf("%d",&a[i]);
InsertSort(a,n);
for(i=0;i<=n-1;i++) //输出
{
if(i!=n-1)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
}
return 0;
}
边栏推荐
- EasyCVR视频广场设备列表无法滚动和加载是什么原因?
- R语言游程检验:使用runs.test函数对二值序列数据执行游程检验(检验序列是否是随机的)
- LeetCode 0121.买卖股票的最佳时机 - 从后往前模拟
- 海上风电消防火灾报警系统中消防主机超远距离联网方案
- 一文看懂深圳半导体产业现状与未来发展机遇
- 数据治理新动态:欧盟发布数据治理研究报告,对国内有何影响
- MultiHead-Attention和Masked-Attention的机制和原理
- ES6中的拓展运算符
- STEPN链游系统开发模式详解(运动赚钱模式)
- P5024 [noip2018 improvement group] solution to defending the Kingdom
猜你喜欢
随机推荐
路由器和交换机的区别
启牛开通的华泰账户用着安全吗?
UI automation tool of CSDN salary increase technology: uiautomator2
展锐首款5G基带芯片正式发布,成功跻身5G第一梯队!
UART bus protocol
一文看懂深圳半导体产业现状与未来发展机遇
大咖说·图书分享 | HaaS 物联网设备云端一体开发框架
ES6中的箭头函数
Scientific computing library numpy Foundation & Improvement (Understanding + explanation of important functions)
Qt QTextEdit 设置 QScrollBar 样式表不生效解决方案
STEPN链游系统开发模式详解(运动赚钱模式)
IPv4和IPv6的区别
Openzeppelin可升级模板库合约初始化详解
神器在手随时随地获取最新技术前沿
【软件测试】—— 测试分类
一图解释RIB表与FIB表区别
《如何打一场数据挖掘赛事》入门版
TR069事件类型(EVENT CODE对应的含义)
One article solution! A40i three most common network card software problems
PMP考试易混淆概念辨析技巧!看完不丢分!