public class test1{
public static void main(String args[])
{
int min;
int temp;
int [] array={3,4,2,5,7,6};
for(int k=1;k<array.length;k++)
{
for(int j=1;j<array.length-1-k;j++)
if (array[j]<array[j-1])
{
temp=array[j];array[j]=array[j-1];array[j-1]=temp; }
}
for(int m=0;m<array.length;m++)
{System.out.println("排序后的数组:"+array[m]);}
}
}
这段自己编的程序运行结果和没排序一样不知道错哪里了。
public static void main(String args[])
{
int min;
int temp;
int [] array={3,4,2,5,7,6};
for(int k=1;k<array.length;k++)
{
for(int j=1;j<array.length-1-k;j++)
if (array[j]<array[j-1])
{
temp=array[j];array[j]=array[j-1];array[j-1]=temp; }
}
for(int m=0;m<array.length;m++)
{System.out.println("排序后的数组:"+array[m]);}
}
}
这段自己编的程序运行结果和没排序一样不知道错哪里了。
public static void main(String args[]) {
int temp;
int[] array = { 3, 4, 2, 5, 7, 6 };
for (int k = 1; k < array.length; k++) {
for (int j = 1; j < array.length + 1 - k; j++)
if (array[j] < array[j - 1]) {
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
for (int m = 0; m < array.length; m++) {
System.out.println("排序后的数组:" + array[m]);
}
}
}
冒泡排序。
把"-1"改成"+1"。
int temp;
int[] array = { 3, 4, 2, 5, 7, 6 ,10,1};
for (int k = 1; k < array.length; k++) {
for (int j = 1; j < array.length - k +1; j++)
if (array[j] < array[j - 1]) {
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
for (int m = 0; m < array.length; m++) {
System.out.println("asd" + array[m]);
}
public static void main(String args[]) {
int temp;
int[] array = { 3, 4, 2, 5, 7, 6 };
for (int k = 0; k < array.length; k++) {
int min=k;
for (int j = k+1; j < array.length; j++)
if (array[j] < array[min]) min=j;
temp=array[min];
array[min]=array[k];
array[k]=temp;
}
System.out.println("排序后的数组:");
for (int m = 0; m < array.length; m++) {
System.out.print(array[m]+" ");
}
}
}
选择排序。
试一试
public static void main(String args[])
{
int min;
int temp;
int [] array = {3,4,2,5,7,6};
for(int k = 0; k < array.length; k++)
{
for(int j = k; j < array.length; j++)
if (array[j] < array[k])
{
temp = array[k];
array[k] = array[j];
array[j] = temp;
}
}
for(int m = 0; m < array.length; m++)
{
System.out.println("排序后的数组:"+array[m]);
}
}
}
下边这些是我写的 楼主看看
public static void bubbleSort(int... arr) {
int temp;
for (int i = 0; i < arr.length - 1; i++) {
temp = 0;
for (int j = arr.length - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
arr[j] ^= arr[j - 1];
arr[j - 1] ^= arr[j];
arr[j] ^= arr[j - 1];
temp++;
}
}
if (temp == 0) {
break;
}
}
} public static void selectSort(int... arr) {
int temp;
for (int i = 0; i < arr.length - 1; i++) {
temp = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[temp]) {
temp = j;
}
}
if (temp == i)
continue;
arr[i] ^= arr[temp];
arr[temp] ^= arr[i];
arr[i] ^= arr[temp];
}
} public static void quickSort(int[] arr) {
innerQuickSort(arr, 0, arr.length - 1);
} private static void innerQuickSort(int[] arr, int head, int end) {
if (head >= end) {
return;
}
int index = head;
int temp = 0;
for (int i = head; i < end; i++) {
if (arr[i] <= arr[end]) {
temp = arr[index];
arr[index] = arr[i];
arr[i] = temp;
index++;
}
}
temp = arr[index];
arr[index] = arr[end];
arr[end] = temp;
innerQuickSort(arr, head, index - 1);
innerQuickSort(arr, index + 1, end);
} public static void insertSort(int... arr) {
int index, temp;
for (int i = 1; i < arr.length; i++) {
index = i;
temp = arr[i];
while (index-- > 0 && arr[index] > temp)
;
for (int j = i; j > index + 1; j--) {
arr[j] = arr[j - 1];
}
arr[index + 1] = temp;
}
} public static void mergeSort(int... arr) {
int[] rep = new int[arr.length];
int[] temp;
int inc = 1;
int index = 0;
int first = 0;
int second = 0;
int times = 0;
while (inc < arr.length) {
index = 0;
for (int i = 0; i < arr.length; i += inc * 2) {
first = i;
second = i + inc;
while (first < i + inc && first < arr.length
&& second < i + inc * 2 && second < arr.length) {
if (arr[first] <= arr[second]) {
rep[index++] = arr[first++];
} else {
rep[index++] = arr[second++];
}
}
while (first < i + inc && first < arr.length) {
rep[index++] = arr[first++];
}
while (second < i + inc * 2 && second < arr.length) {
rep[index++] = arr[second++];
}
}
inc *= 2;
times++;
temp = arr;
arr = rep;
rep = temp;
}
if (times % 2 == 1) {
temp = arr;
arr = rep;
for (int i = 0; i < temp.length; i++) {
arr[i] = temp[i];
}
}
}
// 堆排序
public static void heapSort(int[] arr) {
for (int i = arr.length / 2; i >= 0; i--) {
maxHeap(arr, i, arr.length);
}
for (int i = arr.length - 1; i >= 1; i--) {
arr[0] ^= arr[i];
arr[i] ^= arr[0];
arr[0] ^= arr[i];
maxHeap(arr, 0, i);
}
} // 建最大堆
private static void maxHeap(int[] arr, int index, int end) {
int q;
while (index < end) {
q = 2 * index + 1;
if (q >= end)
break;
if ((q < end - 1 && (arr[q + 1] > arr[q])))
q = q + 1;
// 如果某一节点的值大于其子节点的最小值,将其交换
if (arr[q] > arr[index]) {
arr[q] ^= arr[index];
arr[index] ^= arr[q];
arr[q] ^= arr[index];
index = q;
} else {
break;
}
}
}
内部也少了一次
改成下边这样就可以了
public static void main(String[] args) {
int min;
int temp;
int[] array = { 3, 4, 2, 5, 7, 6 };
for (int k = 0; k < array.length; k++) {
for (int j = 1; j < array.length - k; j++)
if (array[j] < array[j - 1]) {
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
for (int m = 0; m < array.length; m++) {
System.out.println("排序后的数组:" + array[m]);
} }
public static void main(String args[]) {
int[] myArray = { 3, 4, 2, 5, 7, 6 };
//取长度最长的词组 -- 冒泡法
for (int j = 1; j < myArray.length;j++)
{
for (int i = 0; i < myArray.length - 1; i++)
{
// 如果 myArray[i] < myArray[i+1] ,则 myArray[i] 下沉一位
if (myArray[i] < myArray[i + 1])
{
int tempf = myArray[i];
myArray[i] = myArray[i + 1];
myArray[i + 1] = tempf;
}
}
}
for (int m = 0; m < myArray.length; m++)
{
System.err.println(myArray[m]);
} }