算法与数据结构之简单排序
2016-06-10 13:38
295 查看
简单排序:
1.冒泡排序
2.选择排序
3.插入排序
代码:SimpleSort.java
package com.caicongyang.sort;
/**
*
*
* @author caicongyang1
* @version $Id: SimpleSort.java, v 0.1 2016年5月31日 下午4:15:07 caicongyang1 Exp $
*/
public class SimpleSort {
public static void main(String[] args) {
int[] arr = { 10, 4, 5, 7, 2, 3, 8 };
System.out.println(arr[arr.length - 1]);
//bubbleSort(arr);
//selectionSort(arr);
insertionSort(arr);
for (int i : arr) {
System.out.println(i);
}
}
/**
*插入排序
*将数组分成有序部分和无序部分,将无序的依次插入有序部分中
*
* @param arr
*/
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {//外层总1开始,
int temp = arr[i];
int j = i;
while (j > 0 && arr[j - 1] >= temp) {//内层从外层开始,向左移动,直到他不能向左移动位置(排到到应有的位置)
arr[j] = arr[j - 1]; //向左移动
--j;
}
arr[j] = temp; //插入对应的位置
}
}
/**
* 选择排序
*
* 将最小的放在未排序的最前面,依次交换
*
*
*/
public static void selectionSort(int[] arr) {
int min; //定义最小的变量
for (int i = 0; i < arr.length - 1; i++) { //外层从数组最小的位置0开始,到数组的倒数第二个位置
min = i; //默认最小为数组第一个
for (int j = i + 1; j < arr.length; j++) { //内层从i+1开始,到数组的最后一个位置,依次比较,如果当前数比min更小,则将内层的数换到min位置
if (arr[j] < arr[min]) {
min = j;
}
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
/**
* 冒泡排序
*
* 逐个交换,将最大的放到最后一个,依次类推
*
*/
public static void bubbleSort(int[] arr) {
for (int i = arr.length - 1; i > 1; i--) { //外层从数组的最后一个位置开始,依次递减,后面的位置是排序好的
for (int j = 0; j < i; j++) {//内层从0开始,逐个比较,直到内层等于外层的时候结束,将最大的一个换到最后的位置
if (arr[j] > arr[j + 1]) {
int temp = arr[j]; //交换对换位置
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
更多精彩内容请继续关注我的博客:http://blog.csdn.net/caicongyang
记录与分享,你我共成长 -from caicongyang
如果你觉得本文对你有帮助,可以扫描下面的微信二维码,请我喝杯水咯!
1.冒泡排序
2.选择排序
3.插入排序
代码:SimpleSort.java
package com.caicongyang.sort;
/**
*
*
* @author caicongyang1
* @version $Id: SimpleSort.java, v 0.1 2016年5月31日 下午4:15:07 caicongyang1 Exp $
*/
public class SimpleSort {
public static void main(String[] args) {
int[] arr = { 10, 4, 5, 7, 2, 3, 8 };
System.out.println(arr[arr.length - 1]);
//bubbleSort(arr);
//selectionSort(arr);
insertionSort(arr);
for (int i : arr) {
System.out.println(i);
}
}
/**
*插入排序
*将数组分成有序部分和无序部分,将无序的依次插入有序部分中
*
* @param arr
*/
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {//外层总1开始,
int temp = arr[i];
int j = i;
while (j > 0 && arr[j - 1] >= temp) {//内层从外层开始,向左移动,直到他不能向左移动位置(排到到应有的位置)
arr[j] = arr[j - 1]; //向左移动
--j;
}
arr[j] = temp; //插入对应的位置
}
}
/**
* 选择排序
*
* 将最小的放在未排序的最前面,依次交换
*
*
*/
public static void selectionSort(int[] arr) {
int min; //定义最小的变量
for (int i = 0; i < arr.length - 1; i++) { //外层从数组最小的位置0开始,到数组的倒数第二个位置
min = i; //默认最小为数组第一个
for (int j = i + 1; j < arr.length; j++) { //内层从i+1开始,到数组的最后一个位置,依次比较,如果当前数比min更小,则将内层的数换到min位置
if (arr[j] < arr[min]) {
min = j;
}
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
/**
* 冒泡排序
*
* 逐个交换,将最大的放到最后一个,依次类推
*
*/
public static void bubbleSort(int[] arr) {
for (int i = arr.length - 1; i > 1; i--) { //外层从数组的最后一个位置开始,依次递减,后面的位置是排序好的
for (int j = 0; j < i; j++) {//内层从0开始,逐个比较,直到内层等于外层的时候结束,将最大的一个换到最后的位置
if (arr[j] > arr[j + 1]) {
int temp = arr[j]; //交换对换位置
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
更多精彩内容请继续关注我的博客:http://blog.csdn.net/caicongyang
记录与分享,你我共成长 -from caicongyang
如果你觉得本文对你有帮助,可以扫描下面的微信二维码,请我喝杯水咯!
相关文章推荐
- 插入排序
- 冒泡排序
- C#冒泡法排序算法实例分析
- C++实现对输入数字组进行排序
- php实现插入排序
- 用PHP写的一个冒泡排序法的函数简单实例
- js实现数组冒泡排序、快速排序原理
- 分享javascript实现的冒泡排序代码并优化
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- c++冒泡排序示例分享
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:选择排序 Selection Sort
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- c#冒泡排序示例分享
- 冒泡排序算法及Ruby版的简单实现
- javascript冒泡排序小结
- Java经典算法汇总之选择排序(SelectionSort)
- python冒泡排序与常用数学计算