package arithmetic;
/**
* Created by IntelliJ IDEA.
* User: haoshihai
* Date: 13-8-8
* Time: 下午12:12
* To change this template use File | Settings | File Templates.
*/
//java 算法
public class Arithmetic {
int data[] = {9, 2, 7, 19, 100, 97, 63, 208, 19, 78};
//打印
public void print() {
for (int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
}
//排序-直接插入
/**
* 原理 每次从待排序的元素取出一个,插入到已排序元素中适当位置
*/
public void directInsert() {
for (int i = 1; i < data.length; i++) {
int j = i;
while (j > 0 && data[j] < data[j - 1]) {
int temp = 0;
temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
j--;
}
}
}
//排序-冒泡
/**
* 原理 每次循环从剩余元素找出最值(最大或最小值)
*/
public void maxPopup() {
for (int i = 0; i < data.length - 1; i++) {
int temp = 0;
for (int j = i; j < data.length - 1; j++) {
if (data[j] > data[j + 1]) {//升序 数值小向前移
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
}
//排序-选择
/**
* 原理 与直接插入排序正好相反,选择排序是从待排序的数中选出最小的放在已经排好的后面。
*/
public void selectSort() {
for (int i = 0; i < data.length - 1; i++) {
int k = i;
for (int j = i + 1; j < data.length; j++) {
if (data[j] < data[k]) {
k = j;
}
}
if (k != i) {
int temp = data[k];
data[k] = data[i];
data[i] = temp;
}
}
}
public static void main(String args[]) {
Arithmetic arithmetic = new Arithmetic();
arithmetic.print();
arithmetic.selectSort();
System.out.println("-------排序后--------------");
arithmetic.print();
}
}