我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法。比较排序过程中,按住某一个数和后面的所有数都比较一下,如果前者大于后者,则进行交换,比较排序过程中显然要交换的次数较多,较为理想的方式是按住某一个数,然后在后面所有数中找到最小值再进行比较和交换,这样交换的次数会减少。

原题链接:1283: 简单排序


python代码如下:

# 选择排序
def choose_sort(lst):for a in range(0, len(lst) - 1):p = afor b in range(a+1, len(lst)):if lst[p] > lst[b]:p = bif p != a:t = lst[p]lst[p] = lst[a]lst[a] = tT = 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)choose_sort(lt1)for j in range(n):if j != n - 1:print(lt1[j], end=' ')else:print(lt1[j])

C语言代码如下:

#include <stdio.h>
void choosesort(int x[],int n)    // 选择排序
{int i,j,p,temp;for(i=0;i<n-1;i++){p=i;for(j=i+1;j<n;j++){if(x[p]>x[j]){p=j;}}if(p!=i){temp=x[p];x[p]=x[i];x[i]=temp;}}
}
int main()
{int m,n,i,j,a[1000]={0};scanf("%d",&m);while(m--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);choosesort(a,n);for(i=0;i<n-1;i++)printf("%d ",a[i]);printf("%d\n",a[n-1]);}return 0;
}

TZC 1283: 简单排序 —— 选择排序相关推荐

  1. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  2. 简单的选择排序(内部排序)

    1 /** 2 * 3 */ 4 package com.trfizeng.selectionsort; 5 6 /** 7 * @author trfizeng 内部排序 选择排序-简单选择排序(S ...

  3. 从简单的选择排序入手,深刻理解程序

    深刻理解选择排序 选择排序法基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换:第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换:以此类推, ...

  4. TZC 1283: 简单排序 —— 归并排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.归并排序原理请参见:https://www.jianshu.com/p/33cffa1ce613 或 ...

  5. TZC 1283: 简单排序 —— 快速排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.快速排序原理请参见:https://www.runoob.com/w3cnote/quick-sor ...

  6. TZC 1283: 简单排序 —— 堆排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.堆排序原理请参见:https://blog.csdn.net/u010452388/article/ ...

  7. TZC 1283: 简单排序 —— 希尔排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.希尔排序原理请参见:https://www.cnblogs.com/chengxiao/p/6104 ...

  8. TZC 1283: 简单排序 —— 插入排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.冒泡排序原理请参见:https://zhuanlan.zhihu.com/p/122293204 或 ...

  9. TZC 1283: 简单排序 —— 冒泡排序

    我们以TZC 1283为例简单说明一下排序(含十大经典排序算法)的python实现方法和C实现方法.冒泡排序原理请参见:https://www.runoob.com/w3cnote/bubble-so ...

最新文章

  1. Sony Sony开发在线音乐订阅服务
  2. 如何在 ASP.NET Core 中发送邮件
  3. vue 特定条件下绑定事件
  4. python format格式化输出填充符号不起作用_Python格式化输出——format用法示例
  5. 记一次噩梦般的经历——论学会反编译的重要性
  6. C语言基本入门英语单词,C语言基本入门英语单词.doc
  7. 最常用的GitHub—— Android 开源项目整理(精品)
  8. python处理点云数据_点云数据处理知识讲解
  9. Hadoop之常用端口号
  10. 2022年3月编程语言排行榜:Lua重新回到前20
  11. List 接口和常用方法
  12. 就小容量分布式光伏电站信息采集系统的设计与应用的研究方案 光伏电站建设 小型光伏电站 (安科瑞-须静燕)
  13. 【线性代数】6-1:特征值介绍(Introduction to Eigenvalues)
  14. SCL3400-D01双轴高精度倾角计
  15. 6.OSI七层模型及交换机工作原理及VLAN(虚拟局域网)及VTP(vlan同步技术)
  16. pytorch加载自己的图片数据集的两种方法
  17. 基于语义关联的中文查询纠错框架
  18. C语言 char 和 signed char的区别
  19. 杭电OJ1001 C
  20. 关于5G接入网,看这一篇就够啦!

热门文章

  1. 打开文件夹并选定指定的文件
  2. selenium判断是否出现弹窗_如何判断宝宝是否有蛔虫?若出现这6种“表现”,可以考虑驱虫了...
  3. 小米11和小米11pro什么时候上市
  4. 华为matebook13能升级鸿蒙吗,华为MateBook 13 2020款多屏协同新升级:让都市白领工作效率翻倍...
  5. 2019全球传统文化春节晚会录制完成 非遗与雅文化令人期待
  6. 阿里云盘搜索引擎项目架构图
  7. 8.Java实现数字的千分制
  8. Fresco图片加载工具
  9. 2018年浙江大学计算机学院夏令营实习
  10. EPLAN2022——连接定义点