冒泡排序,选择排序,插入排序
来源:互联网 发布:国家旅游局数据 编辑:程序博客网 时间:2024/05/18 15:05
# 冒泡排序,选择排序,插入排序
* ## 冒泡排序
冒泡排序的思想:
将数组中的元素,从第一个开始,分别和后一个元素相比,如果前一个元素,比后一个元素大,那么交换两个元素的位置,这样,每轮排序结束后,最大的元素就会冒泡排到最后,以此达到排序的目的.
* ### 伪代码的实现
* 1 对数组array进行 array.lenght-1轮冒泡
* 2 循环判断相邻元素的大小
* 2.1 如果前一个比后一个大,交换两个元素的位置,否则返回判断条件
* 3 执行第一步
* ### 代码实现
```
/*冒泡排序*/
public static void bubbleSort( int[] array) {
for(int i = 1;i < array.length;++i) {
for(int j = 0;j < array.length - i;++j) {
if(array[j]>array[j+1]) {
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
}
```
* ## 选择排序
选择排序的思想:
将数组的第一个元素和后面的元素相比,如果比后面元素大,那么交换位置,这样,第一轮选择结束后,第一个元素就是最小值,然后第二个元素分别和后面元素比较,直到最后一个元素.
* ### 伪代码实现
* 1 将数组的第一个元素到最后一个元素分别提出来
* 2 将选出的元素分别和后面元素比较
* 2.1 如果选出的元素大于后面元素,交换两个元素位置,否者,返回第二步
* 3 执行第一步
* ### 代码实现
```
/*选择排序*/
public static void selectSort(int[] array) {
for(int i=0;i<array.length-1;++i)
{
for(int j=i+1;j<array.length;++j)
{
if(array[i]>array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
```
* ## 插入排序
插入排序的思想:
将一个无序表中的元素选择出来,分别插入一个有序列表中,并保持列表的有序性,这样,每次插入,都是一个有序数组
* ### 伪代码实现
* 1 选出无序列表的第一个元素
* 2 与有序列表的最后一个元素比较,如果比最后一个元素小,下一步,否则认为插入有序列表最后也是有序的,返回第一步
* 3 将选出的元素从后向前和有序列表中的元素比较,如果小于元素中的元素,下一步,否则,结束循环,直到成为第一个元素
* 3.1 有序列表的元素向后挪动一位
* 2.1 将元素插入
* ### 代码实现
```
/*插入排序*/
public static void insertSort(int[] array) {
for(int i = 1;i<array.length;++i) {
if(array[i]<array[i-1]) {
int temp = array[i];
int k = i-1;
for(int j = k; j >= 0 && temp < array[j]; --j) {
array[j+1] = array[j];
k--;
}
array[k+1] = temp;
}
}
}
```
* ## 冒泡排序
冒泡排序的思想:
将数组中的元素,从第一个开始,分别和后一个元素相比,如果前一个元素,比后一个元素大,那么交换两个元素的位置,这样,每轮排序结束后,最大的元素就会冒泡排到最后,以此达到排序的目的.
* ### 伪代码的实现
* 1 对数组array进行 array.lenght-1轮冒泡
* 2 循环判断相邻元素的大小
* 2.1 如果前一个比后一个大,交换两个元素的位置,否则返回判断条件
* 3 执行第一步
* ### 代码实现
```
/*冒泡排序*/
public static void bubbleSort( int[] array) {
for(int i = 1;i < array.length;++i) {
for(int j = 0;j < array.length - i;++j) {
if(array[j]>array[j+1]) {
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
}
```
* ## 选择排序
选择排序的思想:
将数组的第一个元素和后面的元素相比,如果比后面元素大,那么交换位置,这样,第一轮选择结束后,第一个元素就是最小值,然后第二个元素分别和后面元素比较,直到最后一个元素.
* ### 伪代码实现
* 1 将数组的第一个元素到最后一个元素分别提出来
* 2 将选出的元素分别和后面元素比较
* 2.1 如果选出的元素大于后面元素,交换两个元素位置,否者,返回第二步
* 3 执行第一步
* ### 代码实现
```
/*选择排序*/
public static void selectSort(int[] array) {
for(int i=0;i<array.length-1;++i)
{
for(int j=i+1;j<array.length;++j)
{
if(array[i]>array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
```
* ## 插入排序
插入排序的思想:
将一个无序表中的元素选择出来,分别插入一个有序列表中,并保持列表的有序性,这样,每次插入,都是一个有序数组
* ### 伪代码实现
* 1 选出无序列表的第一个元素
* 2 与有序列表的最后一个元素比较,如果比最后一个元素小,下一步,否则认为插入有序列表最后也是有序的,返回第一步
* 3 将选出的元素从后向前和有序列表中的元素比较,如果小于元素中的元素,下一步,否则,结束循环,直到成为第一个元素
* 3.1 有序列表的元素向后挪动一位
* 2.1 将元素插入
* ### 代码实现
```
/*插入排序*/
public static void insertSort(int[] array) {
for(int i = 1;i<array.length;++i) {
if(array[i]<array[i-1]) {
int temp = array[i];
int k = i-1;
for(int j = k; j >= 0 && temp < array[j]; --j) {
array[j+1] = array[j];
k--;
}
array[k+1] = temp;
}
}
}
```
阅读全文
1 0
- 冒泡选择插入排序
- 冒泡、选择、插入排序
- 选择、插入、冒泡排序
- 冒泡、插入、选择排序
- 选择、插入、冒泡排序
- 冒泡、选择、插入排序
- 选择、冒泡、插入-排序
- 插入 选择 冒泡 排序
- 选择、冒泡、插入排序
- 冒泡、选择、插入排序
- 冒泡,插入,选择排序
- 冒泡,选择,插入排序
- 冒泡、插入、选择排序
- 冒泡,插入,选择排序
- 冒泡,选择,插入排序
- 冒泡,选择,插入排序
- 选择排序,插入排序,冒泡排序
- 冒泡排序,选择排序,插入排序
- java基础 多态 抽象 final
- 《代码大全》读书笔记
- ENVI-IDL技术殿堂博客
- 移动端车牌识别你真的了解吗?
- 实验七:将menu设计为可重用的子系统
- 冒泡排序,选择排序,插入排序
- numpy tips
- 南洋王
- qt 播放音视频遇到问题的解决方法
- linux基础操作命令学习总结
- Haproxy+keepalived(1)
- hdu5543(01背包变换)
- pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
- switch case语句,如果不在case后加break会怎么样