选择交换法排序c语言程序,C语言排序算法之简单交换法排序,直接选择排序,冒泡排序...
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。
简单交换法排序
/*简单交换法排序
根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置
交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动
不稳定
*/
#include
#include
void main(){
int i,j,arr[]={,,,,,,,,,},t;
int size = sizeof(arr)/sizeof(int);//计算数组的大小
for(i = ;i< size-;i++){//n个数进行n-1轮比较
for(j = i+;j< size;j++)//每一轮比较时,后面的数与i为下标的数比较
if(arr[j]
t=arr[j];
arr[j]=arr[i];
arr[i]=t;
}
}
for(i = ;i< size;i++){//输出
printf("%d ",arr[i]);
}
system("pause");
}
直接选择排序
/*选择排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)
*/
#include
#include
void main(){
int min,i,j,arr[]={,,,,,,,,,},t;
int size = sizeof(arr)/sizeof(int);//计算数组的大小
for(i = ; i< size-;i++){//n个数进行n-1轮比较
min = i;//每一轮假定i为下标的这个数为最小值,记录下标
for(j = i+;j < size;j++)//每一轮比较时,后面的数与min为下标的数比较
if(arr[j]
if(min != i){//如果min的值发生了变化即当前下标为i的数不是最小值,交换
t = arr[i];
arr[i]=arr[min];
arr[min] = t;
}
}
for(i = ;i< size;i++){//输出
printf("%d ",arr[i]);
}
system("pause");
}
冒泡排序
/*冒泡排序
重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成
*/
#include
#include
void main(){
int min,i,j,arr[]={,,,,,,,,,},t,noswap;
int size = sizeof(arr)/sizeof(int);//计算数组的大小
for(i = ; i< size-;i++){//n个数进行n-1轮比较
noswap = ;//标记是否发生交换,以避免对已经有序的序列再排序
for(j = ;j
if(arr[j]>arr[j+]){//如果前一个数比后一个数大,交换
t=arr[j];
arr[j]=arr[j+];
arr[j+]=t;
noswap = ;//发生了交换
}
}
if(noswap) break; //没有发生交换,说明已经有序,无需再排序,退出循环
}
for(i = ;i< size;i++){//输出
printf("%d ",arr[i]);
}
system("pause");
}
排序算法Java代码实现(一)—— 选择排序
以下几篇随笔都是记录的我实现八大排序的代码,主要是贴出代码吧,讲解什么的都没有,主要是为了方便我自己复习,哈哈,如果看不明白,也不要说我坑哦! 本片分为两部分代码: 常用方法封装 排序算法里需要频繁使 ...
Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
[java初探06]__排序算法的简单认识
今天,准备填完昨天没填的坑,将排序算法方面的知识系统的学习一下,但是在简单的了解了一下后,有些不知如何组织学习了,因为排序算法的种类,实在是太多了,各有优略,各有适用的场景.有些不知所措,从何开始. ...
Java常用排序算法+程序员必须掌握的8大排序算法
概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...
Java 常用排序算法/程序员必须掌握的 8大排序算法
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...
几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列. 稳定度(稳定性)一个排序算法是稳定的,就是当有两个相等记录的关 ...
C语言排序算法学习笔记——交换类排序
交换类排序:根据序列中两个元素关键字的比较结果来交换他俩在序列中的位置. 冒泡排序:假设待排序表长为n,从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i])则交换他们 ...
Java学习笔记——排序算法之简单排序
男儿何不带吴钩,收取关山五十州.请君暂上凌烟阁,若个书生万户侯? --南园十三首 三种排序法: 1.冒泡法 2.简单选择法 3.直接插入法 上代码: 1.冒泡排序 public class Bub ...
[转]Java 常用排序算法/程序员必须掌握的 8大排序算法
本文转自:http://www.cnblogs.com/qqzy168/archive/2013/08/03/3219201.html 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插 ...
随机推荐
CXF:根据werservice代码生成WSDL(转)
原文:http://hongyegu.iteye.com/blog/619147,谢谢! import org.apache.cxf.tools.java2ws.JavaToWS; import ne ...
GMap.NET使用一
https://greatmaps.codeplex.com/releases/view/20235 从上面网站下载需要的组件dll,也可以下载源码研究,解压后有两个文件夹,如图1所示,根据不同的fr ...
java 多线程编程三种实现方式
一种是继承Thread类,一种是实现Runable接口,还有一种是实现callable接口: 有博主说只有前面2种方式,我个人愚见是三种,主要详细介绍下callable的使用: 三种线程的我的个人理解 ...
Android内存Activity泄露:Threads
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露.思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务. ...
使用Array
public class UsingArray { public static void output(int[]Array) { if(Array!=null) ...
BZOJ 1050 旅行comf
题目如下: 题目描述 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边 ...
AbstractRoutingDataSource 实现动态切换数据源
扩展AbstractRoutingDataSource类 package com.datasource.test.util.database; import org.springframework.j ...
HDU 1074 Doing Homework(经典状压dp)
题目链接 Doing Homework Ignatius has just come back school from the 30th ACM/ICPC. Now he has a ...
vscode 同步配置
按照插件完成配置之后,将token保存在本地,编辑配置文件:ctrl+3.sync高级选项.编辑本地扩展设置.将token粘贴进去即可,团队所有vscode均应该按照此配置来保持统一:
选择交换法排序c语言程序,C语言排序算法之简单交换法排序,直接选择排序,冒泡排序...相关推荐
- C语言排序算法之简单交换法排序,直接选择排序,冒泡排序
C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...
- 插入法排序c语言程序,C语言之插入排序算法
一.什么是直接插入算法? 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列. 选择 ...
- 排序算法之简单插入排序法
对于初学者来说,排序算法是C语言学习的一个重点和难点,我就来分享一下我的学习心得吧! 排序算法有3类:1.交换类排序法.包括冒泡排序和快速排序 2.插入类排序法.包括简单插入排序和希尔排序 3.选择类 ...
- 0 1随机数C语言程序,C语言产生随机数的方法
C语言产生随机数的方法 C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.那么C语言产生随机数的方法都有哪些呢?以下仅供参考! ...
- 我的世界c语言程序,C语言基本知识
软件是将一组程序组织起来 每个程序由一组指令组成 数据结构+算法 数据结构 在程序中要指定数据的类型和数据的组织形式. 算法(程序的灵魂) 就是为了解决实际问题而提出的具体方法与步骤. 算法的特点 有 ...
- 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx
c 语言程序学生籍贯信息记录簿设计 学生籍贯信息记录簿 课程设计报告书 班 级: 方 0909-1 学 号:姓 名: 苑 小 叶 指导教师 : 康 亚 男 石家庄铁道大学四方学院 2010年 07月 ...
- 学生实验平台搭建c语言程序,c语言程序设计实验学生用.doc
c语言程序设计实验学生用 C语言程序设计 实验指导 (学生用) 计算机基础教研室 <C语言程序设计>课程组 2012年9月 前 言 <C语言程序设计>是计算机科学技术系面向全校 ...
- 框图c语言程序,C语言程序设计框图
<C语言程序设计框图>由会员分享,可在线阅读,更多相关<C语言程序设计框图(86页珍藏版)>请在人人文库网上搜索. 1.第三章控制结构,返回总目录,目录,3.1节目结构框,3. ...
- 用直接分解法求方程组的C语言程序,c语言编程求解线性方程组论文
计算机编程求解线性方程组 第一章 绪 论 在自然科学.工程技术.经济和医学各领域中产生的许多实际问题都可以通过数学语言描述为数学问题,也就是说,由实际问题建立数学模型,然后应用各种数学方法和技巧来求解 ...
- 记得每天锻炼身体c语言程序,c语言程序
一实验名称计算出1000以内10个最大素数之和二.实验目的1.熟练掌握if.if-else.if-else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和s ...
最新文章
- Corn Fields(POJ 3254状压dp)
- 记mysqldump导出导入数据库的一个小问题~
- 互联网金融,如何起死回生? | 周四话金融
- Vue(ts) - ref $refs 之el-input获取焦点
- 从源码分析RocketMQ系列-Producer的invokeSync()方法
- 用完HttpWebResponse时别忘了调用Close方法
- 定制你的Unity编辑器
- 无卡支付,快捷支付,认证支付,协议支付,代扣区别与联系
- 最简单的WIN7内核PE系统
- 连接linux的共享文件夹,Linux连接共享文件夹
- R语言使用BOOT重抽样获取回归方程系数95%可信区间(1)
- 开始讨厌现在这种生活
- [tensorflow] 数字标签转化为one-hot形式的tensor
- and desgin Vue页面,使用watch监视, <a-input>内的值, 自动计算出填入框的值,用vue中watch监听input组件的变化
- 小目标检测的相关挑战与问题
- Yoshua Bengio——《Deep Learning》学习笔记1
- UICollectionView Header footer
- vue中js转换火星坐标以及真实坐标
- 【MFC】CSplitterWnd 重载限定窗口调整范围
- Lamp 服务器环境安装