冒泡排序、选择排序、插入排序 算法实现
来源:互联网 发布:淘宝店美人药妆害死人 编辑:程序博客网 时间:2024/04/30 03:27
欢迎来 论坛 http://jobexam.net
这三种排序方法都是O(N2)的,概念和实现如下。
冒泡排序:通过N-1次对剩余未排序元素中最大(小)元素的上浮来实现排序,上浮过程通过交换相邻元素实现。
template<typename ElementType>void BubbleSort(ElementType A[], int N){ElementType Temp;for (int i=0; i<N-1; i++){for (int j=0; j<N-1-i; j++){if (A[j+1]<A[j]){Temp = A[j];A[j] = A[j+1];A[j+1] = Temp;}}}}
选择排序:通过N-1次将剩余未排序元素中最大(小)元素放置到数组尾部来实现排序。
template<typename ElementType>void SelectionSort(ElementType A[], int N){int currentMax;ElementType Temp;for (int i=0; i<N-1; i++){currentMax = 0;for (int j=0; j<N-i; j++){if (A[currentMax]<A[j]){currentMax = j;}}Temp = A[N-1-i];A[N-1-i] = A[currentMax];A[currentMax] = Temp;}}
插入排序:通过N-1趟排序组成。第i趟排序后保证位置0到位置i上的元素为已排序状态。第i趟排序将第i个元素插入到前i-1个有序元素中。
template<typename ElementType>void InsertionSort(ElementType A[], int N){ElementType Temp;for (int i=1; i<N; i++){int j;Temp = A[i];for (j=i; j>0&&Temp<A[j-1]; j--){A[j] = A[j-1];}A[j] = Temp;}}
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 冒泡排序、选择排序、插入排序 算法实现
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- java实现冒泡排序,选择排序,插入排序算法详解
- 【算法】插入排序/冒泡排序/选择排序
- 《算法》选择排序、插入排序、冒泡排序
- java实现冒泡、选择、插入排序算法
- 冒泡-选择-插入排序算法的实现
- 冒泡,选择,插入排序算法C++实现
- 冒泡选择插入排序算法
- 选择-冒泡-插入排序算法
- 算法--插入选择冒泡排序
- 排序:简单排序算法实现:冒泡,选择,插入
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 二叉树的深度
- Java_io_数组流
- Android使用TableLayou动态布局实例
- centos 虚拟主机配置
- Java 多应用服务器Session共享问题
- 冒泡排序、选择排序、插入排序 算法实现
- J2EE上API上两个init方法的区别
- 普通人读普通大学,不意味普通人生
- 查找两数之和等于给定值
- GET方法和POST方法的区别
- Cstyle的UEFI导读之Mass Storage Driver Stack
- C++ Lambda
- [基本] C++中隐式转换
- 黑马韩前成Linux从入门到精通の第九章Linux网络基础