12-09关于几种排序方式
一.选择排序
#include <stdio.h>
//选择排序 //记录最小的那个数的索引值
//下面这个循环就是去寻找最小的那个数的index
//有比k对应的值更小的
//判断是否需要交换
//k和i对应的值交换
void selectsort(int array[],int counttimes){
int k = 0;
for (int i = 0; i < counttimes - 1; i++) {
int k = i ;
for (int j =i +1; j < counttimes; j ++) {
if (array[k] >array[j]) {
k = j ;
}
}
int temp;
if (k != i) {
temp = array[i];
array[i] = array[k];
array[k] = temp;
}
}
}
int main(int argc, const char * argv[]) {
int array[] = {1,25,8,22,2};
selectsort(array, 5);
for (int i = 0; i < 5; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
二.快速排序
#include <stdio.h>
void quicksort(int array[],int low,int high){
int i = low;
int j = high;
int temp = array[low];
if (low < high) {
while (i<j) {
while (i < j&& array[j] >= temp) {
j--;
}
array[i] = array[j];
while (i < j && array[i] <= temp) {
i ++;
}
array[j] = array[i];
}
array[i] = temp;
quicksort(array,0,i-1);
quicksort(array,i+1,high);
}
}
int main(int argc,const char * argv[]){
int array[] = {3,1,9,2,8,3,7,4};
quicksort(array, 0, 7);
for (int i = 0;i < 8;i++) {
printf("%d ",array[i]);
}
printf("\n");
return 0;
}
三.直接排序
#include <stdio.h>
void insertsort(int array[],int elementNum){
int referenceNum = 0;
for (int i = 1; i < elementNum; i ++) {
referenceNum = array[i];
int j =i - 1;
for (; j>= 0; j--) {
if (array[j] > referenceNum) {
array[j+1] = array[j];
}else{
break;
}
}
if (j+1 != i ) {
array[j+1] = referenceNum;
}
}
}
int main(int argc,const char * argv[]){
int array[] = {5,4,6,2,1};
insertsort(array, 5);
for (int i = 0; i < 5; i ++) {
printf("%d ",array[i]);
}
printf("\n");
return 0;
}
转载于:https://www.cnblogs.com/liuzhicen/p/5033812.html
12-09关于几种排序方式相关推荐
- Java两种排序方式快慢比较
2019独角兽企业重金招聘Python工程师标准>>> Java中List的排序方式有两种,现在我们测试下这两种排序方式的快慢吧,我们需要用到两个类, 一个是运行程序的Main类,另 ...
- 五种排序方式gif展示【python】
简述 有五种排序方式. 文章目录 简述 排序 简单排序 冒泡排序 选择排序 归并排序 快速排序 排序 简单排序 import numpy as np import matplotlib.pyplot ...
- go kegg_玩转GO和KEGG富集因子图的N种姿势: 3种数据处理(含在线筛选条目),3种排序方式,本地交互图片...
适用场景 富集性分析是各组学进行数据分析的必备分析项,其中,尤以GO和KEGG富集因子图最为常见,见封面图.这张图非常经典,相比于其他富集分析结果,它包含了基因数目.p值和富集因子三个维度的信息量,更 ...
- 4种排序方式比较:order by, sort by, distribute by, cluster by
文章记录了4种排序方式:order by, sort by, distribute by, cluster by 总结: order by 全局排序,只有一个 Reducer,通过order对字段进行 ...
- 9个元素换6次达到排序序列_排序总结:二大种,六小种排序方式
0.各种排序性能介绍 一.非线性时间比较排序 1.交换排序 1.1.冒泡排序 1.2.快速排序 2.插入排序 2.1.简单插入排序 2.2.希尔排序 3.选择排序 3.1.简单选择排序 3.2.堆排序 ...
- SQLaichemy三种排序方式
一.介绍 SQLALchemy也是一个python的ORM框架,django内部的ORM框架只适用于django,而SQLALchemy适用于所有python的web框架 SQLAlchemy是一个基 ...
- Hive中的四种排序方式(order by,sort by,distribute by,cluster by)使用与区别详解
在平时的Hive数仓开发工作中经常会用到排序,而Hive中支持的排序方式有四种,这里结合具体的案例详细介绍一下他们的使用与区别: order by sort by distribute by clus ...
- mysql中两次排序_MySQL中的两种排序方式: index和filesort
index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高. filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作, ...
- php根据下标倒序排,PHP的三种排序方式
数组排序 排序基础 大约有几十种方法的排序: php中,排序相当简单:一个函数搞定! 比如: $arr5 = array( 12, 'aa'=>8, 6=>10,'bb'=> 3, ...
- 数组常用的几种排序方式
冒泡排序 冒泡拍排序:俩俩捉对比较,大或小就换位置,一直比下去,最大或者最小的放最后 最后的结果是从小到大(从1开始排列) 注意:如果要从大到小排列的话,就把compare方法中的a>b的判断改 ...
最新文章
- 应用化学:从二氯甲烷到四氯化碳
- unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
- DayDayUp:朋友圈有趣的职场跳槽微小说《华为跳阿里→阿里跳腾讯→腾讯跳百度→百度跳华为》
- 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)
- Unity3D学习笔记(一) 模型和贴图导入学习
- python动态显示数据_python中plot实现即时数据动态显示方法
- 16-就业课(2.1)-应用容器-Docker
- Python3 解题:字符串压缩
- C语言程序的错误和警告
- PowerShell 操作 Azure Blob Storage
- SQL笔试之远交近攻
- java包含_【Java】判断字符串是否包含子字符串
- NLP --- 隐马尔可夫HMM(极大释似然估计详解)
- VMware vSphere client 5.1登录出现这个错误:客户端无法向服务器发送完整请求
- Excel数据透视表制作
- jrtplib linux编译,jrtplib+jthread 交叉编译
- 项目管理十大知识领域之项目成本管理
- HttpClient 4使用方法的几个例子
- IOS版本APP STORE上架流程
- 一次Full GC分析
热门文章
- python创建类的实例方法-Python中动态创建类实例的方法
- android ble mesh,Android 蓝牙Mesh组网代码详解
- java的重点是什么_你知道初学者学习Java的重点是什么吗?
- linux系统安装deamonsync,DAEMON Sync的使用心得体会。简易版家庭云服务器!正是我要的那种...
- php7 实战 新闻类,楼+之PHP7实战第1期
- java cms 垃圾回收_Java 9 或将放弃 CMS(并发标记清除垃圾收集器)
- 计算机代码坑人小程序bat,批处理写的关机小程序--bat
- java把图片写入excel_使用POI向excel中写入图片的java代码
- 判断jQuery库是否被正确引入
- 【camera-lidar】自动驾驶相机-激光雷达融合方案综述