在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. C#网络编程之--TCP协议(一)

    TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...

  2. 获取 Cookie

    /// <summary>    /// 获取WPF url 地址中的Cookies    /// </summary>    public partial class Coo ...

  3. SQLite核心函数一览

    abs(X) abs(X)返回 X 的绝对值. Abs(X) returns NULL if X is NULL. Abs(X) return 0.0  if X is a string or blo ...

  4. sublime添加PHP语法检查

    1.找到php文件目录 如E:\xampp\php 放到环境变量的path中   2.sublime 工具-编译系统-新编译系统  {     "cmd": ["php& ...

  5. js检测浏览器是否支持某属性

    以检测浏览器是否支持 input 标签的 required 属性为例: var isSupport = 'required' in document.createElement('input');

  6. 【C++】类型转换(学习笔记)

    1. 隐式类型转换,相关联的类型(e.g.int vs double)之间可以发生隐式类型转换. 比如,在条件中,非布尔类型转为布尔类型: 初始化时,初始值变为变量类型: 赋值时,右值变成左侧的类型: ...

  7. Git merge 与 git rebase的区别

    Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m  "Merge from Dev"  Dev ...

  8. SQL Server错误与事务处理

    T-SQL中出现的错误,依据和事务的关系,可以分为两种情况: 有的错误会导致发生错误位置之后的代码不再执行,如果错误位置在事务中,该事务也会自动回滚(即在错误位置之后的rollback语句不会执行,但 ...

  9. AngularJS语法格式小结

    //创建一个最大的容器,"唯一的名字" []数组 var a=angular.module("abcd",[]); //控制器 a.controller(&qu ...

  10. mfc ui3

    引用:http://www.cnblogs.com/rainbowzc/archive/2010/06/02/1749872.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者 ...