直接上代码 !编译运行正确输出 package com.humi.db;
public class Sort {
/***
* 冒泡排序算法,
*/
static int[] intArr ={8,2,4,5,1,9,0,3,7,6};//测试数组
public static void swap(int index,int nextIndex,int[] targetArray){
// int temp=targetArray[index];
// targetArray[index]=targetArray[nextIndex];
// targetArray[nextIndex]=temp;
if(targetArray[index]==targetArray[nextIndex]){
return;
}
targetArray[index]=targetArray[index]+targetArray[nextIndex];
targetArray[nextIndex]=targetArray[index]-targetArray[nextIndex];
targetArray[index]=targetArray[index]-targetArray[nextIndex];
}
public static void bubbleSort(int[] intArr){
int temp;
for (int i = 0; i <=intArr.length; i++) {//共N-1变
for (int j = 0; j <intArr.length-1-i; j++) {//共 N-i-1的累加次
if(intArr[j]>intArr[j+1]){//升序
// if(intArr[j]<intArr[j+1]){//降序
temp=intArr[j];
intArr[j]=intArr[j+1];
intArr[j+1]=temp;
}
}
}
for (int i = 0; i < intArr.length; i++) {
System.out.print(intArr[i]+" ");
}
}
/**
* 快速排序算法实现,
* @param args
*/
public static void fastSort(int[] data, int start, int end) {
if (start >= end)
return;
//以起始索引为分界点
int pivot = data[start];
int i = start + 1;
int j = end;
while (true) {
while (i <= end && data[i] < pivot) {
i++;
}
while (j > start && data[j] > pivot) {
j--;
}
if (i < j) {
swap( i, j,data);
} else {
break;
}
}
//交换 j和分界点的值
swap( start, j,data);
//递归左子序列
fastSort(data, start, j - 1);
//递归右子序列
fastSort(data, j + 1, end);
}
/***
* Java.util.Arrays 下的sort 归并排序的实现
* @param args
*/
public static void fastSort(int[] intArr){
}
public static void main(String[] args) {
// System.out.println("冒泡排序!升序ASC/降序DESC");
// bubbleSort(intArr);
System.out.println();
System.out.println("快速排序!ASC");
fastSort(intArr,0,intArr.length-1);
for (int j2 = 0; j2 < intArr.length; j2++) {
System.out.print(intArr[j2]+" ");
}
}
}