在C语言中,常见的排序方法有冒泡法,排序法,插入法等等。所谓的冒泡法,就是对一组数字进行从大到小或者从小到大的一种排序方法。主要就是相邻的数值相互交换。从第一个数值开始,如果这相邻的两个数值排序与我们希望的排序位置不同时,那么就将两个数的位置进行交换。如果一致,就不用交换。一直重复这个过程,直到没有数值需要交换为止,则排序完成。下面是将10个学生的成绩用冒泡法按顺序排列的做法:

 #include<stdio.h>
int main()
{
int i;
int arr[];
for(i=;i<;i++)
{
printf("请输入第%d个学生的成绩:\n",i+);
scanf("%d",&arr[i]);
} int j;
for(j=;j<;j++)
{
for(i=;i<;i++) //循环9次
{
int temp=arr[i]; //将arr[i]赋值到一个变量中,arr[i+1]赋值到arr[i]中,此时相邻两个数值换位。
arr[i]=arr[i+];
arr[i+]=temp;
}
}
for(i=;i<;i++)
{
printf("%d\n",&arr[i]);
} return ;
}

选择法:

选择法是用一个变量不断地选择小的数,将值付给变量再通过变量付给相应位置的数组元素…

#include<stdio.h>
int main()
{
int i;
int arr[];
for(i=;i<;i++)
{
printf("请输入第%d个学生的成绩:\n");
scanf("%d",&arr[i]);
}
int j;
for(j=;j<;j++)
{
for(i=j;i<;i++)
{
if(arr[j]>arr[i]) // 判断 arr[j]>arr[i] ,条件成立则将arr[j]与 arr[i]交换
{
int temp=arr[j];
arr[j]=arr[i];
ar[i]=temp;
}
}
} for(i=;i<;i++)
{
printf("%d",&arr[i]);
} return ;
}

插入法:

#include<stdio.h>
int main()
{
int arr[]={,,,,,};
int num;
printf("请输入一个数字:\n",num);
scanf("%d",&num);
int i=; //初始化为0
int index=;
for(;i<;i++)
{
if(num>=arr[i]&&num<arr[i+]) //判断输入的值大于等于前一项且小于后一项时,成立则将这个值插入后一项
{
index=i+;
break;
}
if(num<arr[]) //判断输入的值小于第一项,成立则这个值放在第一项
{
index=;break;
}
}
for(i=;i>index;i--)
{
arr[i]=arr[i-];
}
arr[index]=num;
for(i=;i<;i++)
{
printf("%d",arr[i]);
} return ;
}

C语言中常见的排序方法的更多相关文章

  1. Java中常见的排序方法

    本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基 ...

  2. Java几种常见的排序方法

    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一 ...

  3. Go语言中字符串的查找方法小结

    这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下   1.func Contains(s, substr strin ...

  4. Java中8种常见的排序方法

    排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少 ...

  5. 几种常见的排序方法总结(Python)

    几种常见的排序算法总结(Python) 排序算法:是一种能将一串数据依照特定顺序进行排序的一种算法. 稳定性:稳定排序算法会让原本有相等键值的记录维持相对次序.也就是如果一个排序算法是稳定的,当有两个 ...

  6. java排序方法中的选择排序方法

    每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. package array; //选择排序方法 public class arra ...

  7. C 语言中实现数据与方法的封装

    在 C 语言中可以用结构体代替类,用函数指针代替成员方法,实现数据成员与成员方法的封装,在客户端写出的程序与 C++ 类似,唯一的不同是 C 语言中调用函数指针成员时必须将本对象的地址传给函数,因为 ...

  8. 几种常见的排序方法(C语言实现)

    #include <stdio.h> #include <stdlib.h> #include <Windows.h> //直接插入排序 void InsertSo ...

  9. VC++和C语言中常见数据类型转换为字符串的方法

    1.短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 2.长整型(long) lt ...

随机推荐

  1. 实现loading动画效果

    下面我就来罗列三种实现loading动画效果的方法. 方法一:使用UIImageView自带的方法来实现,这也是我推荐的实现方法. NSMutableArray *array = [[NSMutabl ...

  2. Wordpress去除管理员工具条

    想去掉这条东西有多种方式,个人比较喜欢这个,灵活~ 打开用户,在用户选项里,把这个勾走.

  3. 微信公众平台开发(26) ACCESS TOKEN

    本文介绍微信公众平台下Access Token的概念及获取方法. 一.Access Token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常 ...

  4. fiddler实现手机端抓包(代理)

    一.fiddler设置代理 1.打开Fiddler->Tools->Fiddler Options在Connection面板里将 Allow remote computers to con ...

  5. VMware ESXI磁盘下载虚拟机迁移到另一台VMware ESXI

    1.从10.8.9.156服务器下载虚拟机文件上传到10.8.9.160服务器使用. 2.选择虚拟文件夹点击下载到本地计算机. 3.浏览10.8.9.160数据存储. 4.把存放在本地计算机虚拟文件夹 ...

  6. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增岗位管理-WinForm部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本 新增岗位管理-WinForm部分 岗位(职位)管理模块主要是针对组织机构的岗位(职位)进行管理,包括:增加.修改. ...

  7. (转)MVC设计模式学习总结

    原文  : chenchun的博客 http://www.cnblogs.com/jobscn/archive/2011/11/08/2240725.html -------------------- ...

  8. oracle数据导出工具sqluldr2

    oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...

  9. ios -- 教你如何轻松学习Swift语法(二)

    前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦.      一.可选类型(重点内容)   1.什么是可选类型?        1.1在OC开 ...

  10. javascript对json对象的序列化与反序列化

    首先引入一个json2.js.官方的地址为:https://github.com/douglascrockford/JSON-js 这里为了方便我直接贴上源代码 /* json2.js 2013-05 ...