C语言-简单选择排序与直接插入排序的实现
/*
Name: selectSort and insertSort
Copyright: nyist
Author: 润青
Date: 01/10/18 19:30
Description: 实现了简单选择排序与直接插入排序
*/ #include<stdio.h>
int a[];
int n;
void selectSort();
void insertSort();
int main(){ scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
insertSort();
for(int i=;i<n;i++){
printf("%d ",a[i]);
}
}
void selectSort(){//从待排序部分元素中选取最小的,令其与待排序元素的第一个元素交换位置
for(int i=;i<n;i++){
int k=i;
for(int j=i;j<n;j++){
if(a[j]<a[k]){
k=j;
}
}
int temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
void insertSort(){//用已有序的后一个元素a与有序元素比较,找到a应该放的位置,让a以后的元素后移一位,插入a
for(int i=;i<n;i++){
int temp=a[i],j=i;
while(j>&&temp<a[j-]){
a[j]=a[j-];
j--;
}
a[j]=temp;
}
}
C语言-简单选择排序与直接插入排序的实现的更多相关文章
- Python实现八大排序(基数排序、归并排序、堆排序、简单选择排序、直接插入排序、希尔排序、快速排序、冒泡排序)
目录 八大排序 基数排序 归并排序 堆排序 简单选择排序 直接插入排序 希尔排序 快速排序 冒泡排序 时间测试 八大排序 大概了解了一下八大排序,发现排序方法的难易程度相差很多,相应的,他们计算同一列 ...
- C语言简单选择排序
#include <stdio.h> int main(int argc, char const *argv[]) { // 将数组按照从小到大排序 , , , , , }; int i, ...
- 简单选择排序(Simple Selection Sort)的C语言实现
简单选择排序(Simple Selection Sort)的核心思想是每次选择无序序列最小的数放在有序序列最后 演示实例: C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp) 原创文章, ...
- 常见排序算法总结:插入排序,希尔排序,冒泡排序,快速排序,简单选择排序以及java实现
今天来总结一下常用的内部排序算法.内部排序算法们需要掌握的知识点大概有:算法的原理,算法的编码实现,算法的时空复杂度的计算和记忆,何时出现最差时间复杂度,以及是否稳定,何时不稳定. 首先来总结下常用内 ...
- C语言数据结构之 简单选择排序
算法:设所排序序列的记录个数为n.i取1,2,-,n-1,从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出排序码最小的记录,与第i个记录交换.执行n-1趟 后就完成了记录序列的排序. 编译器: ...
- 【算法】简单选择排序 O(n^2) 不稳定的 C语言
简单选择排序 一.算法描述 假设序列中有N个元素: 第1趟找到第1到N个元素之间最小的一个,与第1个元素进行交换 第2趟找到第2到N个元素之间最小的一个,与第2个元素进行交换 第3趟找到第3到N个元素 ...
- 选择类排序 (简单选择排序,堆排序)— c语言实现
选择类排序包括: (1) 简单选择排序 (2)树形选择排序 (3)堆排序 简单选择排序: [算法思想]:在第 i 趟简单选择排序中,从第 i 个记录开始,通过 n - i 次关键字比较,从 n - ...
- 排序算法c语言描述---选择排序
排序算法系列学习,主要描述冒泡排序,选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等排序进行分析. 文章规划: 一.通过自己对排序算法本身的理解,对每个方法写个小测试程序. 具体思路分析 ...
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
程序员必知的8大排序(一)-------直接插入排序,希尔排序(java实现) 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现) 程序员必知的8大排序(三)-------冒 ...
随机推荐
- win7 + MySQL 5.6.35 免安装版部署
之前项目开发一直用的asp.net技术,所以数据库自然而然的就用的Sql Server了,最近想着手看一下MySQL数据库,部署免安装版的MySQL的过程记录一下. 准备工作:window 7 6 ...
- C++ compile Microsoft Visual C++ Static and Dynamic Libraries
出处:http://www.codeproject.com/Articles/85391/Microsoft-Visual-C-Static-and-Dynamic-Libraries 出处:http ...
- C++ 表示一个区间值得方法
C++中不允许这样的写法 85<= score <=100;你要想表示85<=score<=100的话只能这么写score>=85&&score<= ...
- linux如何删除行首的空格
答: sed 's/^ *//' jello.txt > hello.txt
- 星系炸弹|2015年蓝桥杯B组题解析第二题-fishers
星系炸弹 在X星系的广袤空间中漂浮着许多X星人造"炸弹",用来作为宇宙中的路标. 每个炸弹都可以设定多少天之后爆炸. 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2 ...
- 如何理解并正确使用MySql索引
原文链接:https://my.oschina.net/feinik/blog/1305784 1.概述 索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性 ...
- jq 插件写法
1.一次声明一个函数 $.fn.函数名 = function([options]){} $.fn.red=function(options){ var defaults = { 'color': 'r ...
- HDU2017新生赛 找方块
思路: 先n^3预处理出每个点能到达的(1010串)最上面的行下标. 然后再n^3暴力一下,对于每个点,往左走看能走到哪,边走边更新面积. 代码: #include<bits/stdc++.h& ...
- js插件---Bootstrap 树控件
js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...
- freemarker中对null值问题的处理
1. freemarker不支持null. 如果值为null会报错. 2.当值为null的处理 1)过滤不显示 Hello ${name!} 在属性后面加感叹号即可过滤null和空字符串 if和”?? ...