import java.util.Arrays;
/**
* @author liuwang 插入和快速类似,希尔最快,可以讲比较互换的操作放在栈内存中提高效率,tips:创建的对象在堆内存中。
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 9, 8, 7, 6, 5 };
//或者这样初始化:int[] arr =new int[]{ 1, 2, 3, 4, 9, 8, 7, 6, 5 };
System.out.print("自然顺序:");
for (int x = 0; x < arr.length; x++) {
System.out.print(arr[x]);
}
System.out.println();
System.out.print("sort排序:");
Arrays.sort(arr);
for (int j : arr) {
System.out.print(j);
}
System.out.println();
System.out.print("选择排序:");
selectSort(arr);
for (int i : arr) {
System.out.print(i);
}
bubbleSort(arr);
System.out.println();
System.out.print("冒泡排序:");
for (int i : arr) {
System.out.print(i);
}
}
/**
* 选择的思想:第一轮比较,是将第一元素和接下来的每一个比,按规则互换,比完了将最值放到第一个元素。
*
* @param arr
*/
public static void selectSort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x + 1; y < arr.length; y++) {
if (arr[x] > arr[y]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
/**
* 冒泡的思想:第一轮比较,都是从0角标开始,前一个元素和后一个元素比较,按照既定的规则,将最值移到最后。
* 最值是一步一步冒出来的。
* @param arr
*/
public static void bubbleSort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = 0; y < arr.length - x - 1; y++) {
if (arr[y] < arr[y + 1]) {
int temp = arr[y];
arr[y] = arr[y + 1];
arr[y + 1] = temp;
}
}
}
}
}
/**
* 插入法排序
*/
public static void insert(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x; y > 0 && arr[y] < arr[y - 1]; y--) { // 与所有之前的元素遍历一遍。
int temp = arr[y];
arr[y] = arr[y - 1];
arr[y - 1] = temp;
}
}
}
- 大小: 22.5 KB
- 大小: 23.9 KB
- 大小: 522.3 KB
分享到:
相关推荐
❀设计模式温故而知新❀
【温故而知新】Document对象
CPU 技术温故而知新.pdf
【温故而知新】JavaScript事件循环
【温故而知新】HTML5 WebSocket
【温故而知新】JavaScript数据类型
【温故而知新】JavaScript作用域
【温故而知新】JavaScript的事件模型
【温故而知新】JavaScript的DOM操作
【温故而知新】JavaScript数据结构详解
【温故而知新】JavaScript函数式编程
【温故而知新】HTML5新标签canvas、MathML
【温故而知新】JavaScript的防抖与节流
【温故而知新】JavaScript的类型转换机制
【温故而知新】HTML5 服务器发送事件
【温故而知新】HTML5 应用程序缓存
【温故而知新】HTML5的Web Worker
【温故而知新】JavaScript的继承方式有那些
【温故而知新】HTML5的Video:Audio
【温故而知新】HTML标签:表单:字符