public class test {
/**
* 数组
*/
static int[] a = {1, 5, 9, 6, 8, 3, 7};
/**
* 快速排序方法
*
* @param a
* @param low
* @param high
*/
private static void quickSort(int[] a, int low, int high) {
if (low > high || a.length < 0) {
return;
}
int i = low;
int j = high;
int key = a[low];
while (i < j) {
// 右边比基准小的, 跳出循环
while (i < j && a[j] > key) {
j--;
}
// 左边比基准大的, 跳出循环
while (i < j && a[i] <= key) {
i++;
}
if (i < j) {
// 置换
int p = a[i];
a[i] = a[j];
a[j] = p;
}
}
int p = a[low];
a[low] = a[i];
a[i] = p;
quickSort(a, low, i - 1);
quickSort(a, i + 1, high);
}
/**
* main方法
*
* @param args
*/
public static void main(String[] args) {
/**
* 冒泡排序
*/
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int tep = a[j];
a[j] = a[j + 1];
a[j + 1] = tep;
}
}
}
/**
* 选择排序
*/
for (int i = 0; i <a.length-1 ; i++) {
int max = i;
for (int j = i+1; j < a.length; j++) {
if (a[j]>a[max]){
max = j;
}
}
if (max!=i){
int tep = a[i];
a[i] = a[max];
a[max] = tep;
}
}
/**
* 插入排序
*/
for (int i = 0; i < a.length; i++) {
int j = i;
int target = a[i];
while (j > 0 && target < a[j - 1]) {
a[j] = a[j - 1];
j--;
}
a[j] = target;
}
System.out.println(Arrays.toString(a));//原数组
quickSort(a, 0, a.length - 1);//快速排序
System.out.println(Arrays.toString(a));//快速排序后的数组
/**
* 数组转集合
*/
ArrayList<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < a.length; i++) {
ints.add(a[i]);
}
System.out.println(ints);//原集合
Collections.reverse(ints);//集合反转
System.out.println(ints);//反转后的集合
/**
* 集合转数组
*/
int[] b = new int[ints.size()];//自定义空数组
int i = 0;
Iterator<Integer> iterator = ints.iterator();//迭代器遍历
while (iterator.hasNext()) {
b[i] = iterator.next();
i++;
}
System.out.println("这是b数组" + Arrays.toString(b));//新数组
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交