冒泡排序、选择排序、插入排序、快速排序
来源:互联网 发布:js 屏幕手写板 编辑:程序博客网 时间:2024/06/02 05:16
1、冒泡排序:n个数比较n-1次,每次在无序序列中两两进行比较,把最值沉底。
//升序void BubbleSort(int a[], int n){ for(int i = 0; i < n-1; i++){ for(int j = 0; j < n-1-i; j++){ if(a[j] > a[j+1]){ int t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } }}
2、选择排序:n个数选择n-1次,每次选出一个最值和无序序列的第一个数交换。
//升序void SelectSort(int a[], int n){ for(int i = 0; i < n-1; i++){ int k = i; for(int j = i+1; j < n; j++){ if(a[j] < a[k]) k = j; } if(k != i){ int t = a[k]; a[k] = a[i]; a[i] = t; } }}
3、插入排序:将序列分为有序序列和无序列,依次从无序序列中取出元素值插入到有序序列的合适位置。该算法的特点是在寻找插入位置的同时完成元素的移动。因此元素的移动必须从后往前,则可将两个操作结合在一起完成,提高算法效率。
//升序void InsertSort(int a[], int n){ for(int i = 1; i< n; i++){ int t = a[i],j; for(j = i-1; j>=0 && t < a[j]; j--){ a[j+1] = a[j]; } a[j+1] = t; }}
4、快速排序:在序列中随便找一个数作为基准数,将所有比基准数大的数放在基准数的右边,比基准数小的数放在基准数的左边。
//升序void QuickSort(int a[], int left, int right){ //[left,right] if(left < right){ int key = a[left]; //key为基准数 int low = left; int high = right; while(low < high){ while(low < high && a[high] >= key){ high--; } a[low] = a[high]; while(low < high && a[low] <= key){ low++; } a[high] = a[low]; } a[low] = key; QuickSort(a,left,low-1); QuickSort(a,low+1,right); }}
阅读全文
1 0
- 冒泡排序 快速排序 插入排序 堆排序 选择排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 数组排序:快速排序,选择排序,冒泡排序,插入排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- 冒泡排序,选择排序,插入排序,快速排序(PHP)
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- 插入排序,冒泡排序,选择排序,快速排序
- 插入排序 选择排序 冒泡排序 快速排序
- 冒泡排序、插入排序、快速排序、选择排序
- 冒泡排序-插入排序-快速排序-选择排序---飞天博客
- java实现冒泡排序,插入排序,选择排序,快速排序
- 递归,汉诺塔,冒泡排序,选择排序,插入排序,快速排序
- swift 3.0 冒泡排序,插入排序,选择排序,快速排序
- 冒泡排序、选择排序、插入排序、快速排序
- 快速排序、冒泡排序、插入排序、选择排序
- 冒泡排序 快速排序 选择排序 插入排序
- php 冒泡排序,选择排序、插入排序、快速排序
- 选择排序、快速排序、冒泡排序、插入排序
- webpack 配置热更新
- spring-security认证过程的分析及自定义登录
- 最受欢迎的12个AI工具、库和平台
- Hadoop全链路监控方案
- 一个程序员浏览器收藏
- 冒泡排序、选择排序、插入排序、快速排序
- 大家好,给你们介绍一下,这是我的....
- Ubuntu 14.04 LTS下设置命令模式和开启ssh
- Android-25种开源炫酷动画框架
- 详解COM Add In的LoadBehavior及其妙用
- 关于android studio 打包签名的问题
- HashMap应用
- php+mysql+nginx
- 使用sqlalchemy包将pandas的DataFrame数据写入MySQL数据库