数据结构学习笔记7-排序
来源:互联网 发布:中国mac mg m3 编辑:程序博客网 时间:2024/05/08 00:01
本文将介绍三种排序,选择排序、插入排序和冒泡排序,源码如下
#include <iostream>using namespace std;void Swap(int &a,int &b){ int temp; temp=a; a=b; b=temp;}//简单选择排序void SelectSort(int a[],int n){ int small; for(int i=0;i<n;i++) { small=i; for(int j=i+1;j<n;j++) { if(a[j]<a[small]) small=j; } Swap(a[i],a[small]); }}//插入排序void InsertSort(int a[],int n){ for(int i=0;i<n;i++) { int j; int temp=a[i]; for(j=i;j>0;j--) { if(a[j-1]>temp) { a[j]=a[j-1]; } else break; } a[j]=temp; }}//冒泡排序void BubbleSort(int a[],int n){ int i=n-1; while(i>0) { for(int j=0;j<i;j++) { if(a[j]>a[j+1]) { Swap(a[j],a[j+1]); } } i--; }}int main(){ int a[]={48,36,68,72,12,48,02}; int n=7; //SelectSort(a,n); //InsertSort(a,n); BubbleSort(a,n); for(int i=0;i<n;i++) cout<<a[i]<<" "; return 0;}
1.选择排序
假设有n个元素需要排序,主要算法如下:
step1:找出0~n-1位中关键字值最小的元素放在0号位
step2:找出1~n-1位中关键字值最小的元素放在1号位
step3:找出2~n-1位中关键字值最小的元素放在2号位
。。。。。。
所以该算法的最好最坏时间复杂度都是O(n^2)
2.插入排序
主要算法如下:
step1:比较0号位元素作为一个有序序列集合S
step2:将1号位元素插入到有序集S中,并保证其有序
step3:将2号位元素插入到有序集S中,并保证其有序
。。。。。。
在该元素集合初始状态就是有序情况下,只需要进行n-1次的比较即可,所以最好时间复杂度是O(n)
在最坏情况下(非递增),最坏时间复杂度O(n^2)
3.冒泡排序
算法思想如下:
step1:对0,1位元素排序;对1,2位元素排序;对2,3位元素排序。。。。。。这样当进行完n-1,n的元素排序后,该序列中关键字值最大的元素可以保证处于n-1的位置
step2:对0,1位元素排序;对1,2位元素排序;对2,3位元素排序。。。。。。这样当进行完n-2,n-1的元素排序后,该序列中第二大的元素可以保证处于n-2的位置
。。。。。。
最好时间复杂度O(n)
最坏时间复杂度O(n^2)
【欢迎读者交流批评指正~】
0 0
- 数据结构学习笔记7-排序
- 数据结构学习笔记----排序
- 数据结构学习笔记九:排序
- 数据结构学习笔记-排序技术
- 数据结构学习笔记-排序2
- 数据结构学习笔记-排序3
- 【学习笔记----数据结构27-排序】
- 数据结构-排序(学习笔记)
- 《数据结构与算法》学习笔记7 插入排序
- 《算法与数据结构》学习笔记 4-7 排序算法总结
- 数据结构学习笔记 --- 排序(插入排序、希尔排序)
- 数据结构学习笔记 --- 排序(冒泡排序、快速排序)
- 数据结构学习笔记 --- 排序(选择排序、堆排序)
- 数据结构学习笔记 --- 排序(Gnome排序、梳排序)
- 数据结构学习笔记 --- 排序(插入排序、希尔排序)
- 数据结构学习笔记 --- 排序(冒泡排序、快速排序)
- 数据结构学习笔记 --- 排序(选择排序、堆排序)
- 数据结构学习笔记 --- 排序(Gnome排序、梳排序)
- (23)使用DOM插入新元素,每次插入的新节点放在最前面
- UVA10201 - Adventures in Moving - Part IV
- javascript简要知识点
- Mathematica 10.0.0正式版新特性及其下载
- 路由器进不去的解决办法
- 数据结构学习笔记7-排序
- 数据结构和算法设计专题之---单链表的逆序
- POJ1011 Sticks
- NYOJ 469 擅长排列的小明 II
- Android SDK开发包国内下载地址
- 开源软件架构:Nginx
- 触摸绘图
- 遇到的小问题
- 写外挂的时候遇到有的用户用挂注入不了游戏~