博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组排序总结
阅读量:7243 次
发布时间:2019-06-29

本文共 2151 字,大约阅读时间需要 7 分钟。

对经典的排序方法:冒泡排序、直接插入排序、直接选择排序、快速排序和归并排序做一个总结。

 

//冒泡排序

//基本思想:一次冒泡:

                   从第一个数开始,与后一个数进行比较,若前一个数大于(递增排序)后一个数,则交                      换位置,直至数组的倒数第二个数,共进行n-1次比较,最大数排序完成。

                   以此类推,直至最后一个数(最小数),比较一次即可完成。

#include 
#include
//冒泡排序 void bubblesort(int a[],int n){ int i,j,temp; int swap; for(i=n-1;i>0;i--){ swap=0; for(j=0;j
a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; swap=1; } } if(swap==0){ break; } }}int main(){int n,i;scanf("%d",&n);int* a;a=(int*)malloc(n);for(i=0;i

 

//直接插入排序

//基本思想:从第二个数开始,往前面的数组中插入数字。

                    对之前的数组进行检索,找到一个数它比要插入的数字大,且这个数字前一个数比要                       插入的数字小的位置。从这个数字的位置到要插入数组的数字的位置前一位进行后                           移,最后将要插入的数赋给这个位置。

#include 
#include
//插入排序 void move(int a[],int first,int last){ int i; for(i=last-1;i>=first;i--){ a[i+1]=a[i]; }}void insertsort(int a[],int n){ int i,r,temp; for(i=2;i
=a[i]&&a[r-1]

 

//选择排序

//基本思想:在序列中挑出最小的与第一位数交换,再从第二位数开始的序列中再找出最小的与第                       二位数交换,依此进行,直至只剩一个数。

#include 
#include
//选择排序 void selectsort(int a[],int n){ int i,j; int min,k,temp; for(i=0;i

 

// 快速排序

//基本思想:从第一个数开始,先从数组的末端开始找比它小的数,找到后,把这个数取出来(挖坑),再从数组的起始端开始找比它大的数,找到后,把这个数填到之前的坑里,再从填的坑往前找比它小的数,填坑....直到两端搜索碰到一块,这个点,把它放入。这个确定的点,将数组分成两块,对每块重复进行上述操作。

#include 
#include
//快速排序 void quicksort(int a[],int first,int last){ if(first
=key){ j--; } if(i

 

//归并排序

//基本思想:分为并和归两步。并就是定义第三个数组,把两个排好的数组交替(判断大小)往里填,归就是把一个数组对半拆拆到每个数组只有一个数为止。

#include 
#include
//归并排序void mergearray(int a[],int first,int mid,int last,int temp[]){ int i=first,j=mid+1; int m=mid,n=last; int k=0; while(i<=m&&j<=n){ if(a[i]<=a[j]){ temp[k++]=a[i++]; } else{ temp[k++]=a[j++]; } } while(i<=m){ temp[k++]=a[i++]; } while(j<=n){ temp[k++]=a[j++]; } for(i=0;i

 

转载于:https://www.cnblogs.com/Latticeeee/p/8144279.html

你可能感兴趣的文章
硬链接和软连接
查看>>
nautilus can't be used now,due to an unexpected error解决方法
查看>>
《PHP经典实例(第二版)》(PHP Cookbook, 2nd Edition)中文版,高清扫描版[PDF]
查看>>
Spark On Yarn实战
查看>>
H3C设备与中兴89系列交换机snmp V3配置模板与kali snmpwalk配套测试
查看>>
Python编码问题
查看>>
×××LNMP环境
查看>>
linux 内核代码构架图
查看>>
FTP文件服务器搭建与应用
查看>>
openssl rand 指令解析
查看>>
ubuntu下minicom超级终端的使用方法
查看>>
迅为iTOP-4412核心板调整电压
查看>>
求两个数的最大公约数(辗转相除法)
查看>>
Linux 中gdb调试工具的使用
查看>>
设计模式系列 - 策略模式
查看>>
Windows 2012R2安装KB2919355失败
查看>>
系统集成网络工程师所具备的知识
查看>>
正则表达式
查看>>
Vue.js学习笔记: 插值
查看>>
linux常用命令
查看>>