public class testmerge {
static int[] number = { 6, 5, 3, 1, 8, 7, 2, 4};
static int[] array1;
static void sort(int[]array){
if (array1.length<=1) {
return;
}
int[]first = new int[array1.length/2];
int[]second = new int[array1.length-first.length];
for (int x = 0; x < first.length; x++) {
first[x] = array1[x];
}
for (int x = first.length, y = 0; x < array1.length; x++,y++) {
second[y] = array1[x];
}
sort(first);
sort(second);
merge(first,second);
}
static void merge(int[]fi,int[]se){
int x = 0;
int y = 0;
int z = 0;
while (x<fi.length&&y<se.length) {
if (fi[x]<se[y]) {
array1[z] = fi[x];
x++;
} else {
array1[z] = se[y];
y++;
}
z++;
}
for (int i = x; i < fi.length; i++) {
array1[z] = fi;
z++;
}
for (int i = y; i < se.length; i++) {
array1[z] = se;
z++;
}
}
public static void main(String[] args) {
System.out.println("Before merge sort");
for (int i = 0; i < number.length; i++) {
System.out.print(number + " ");
}
array1 = number;
sort(number);
System.out.println("After merge sort");
for (int i = 0; i < number.length; i++) {
[i]System.[i]out.print([i]number[i] + " ");
}
}
}
อันนี้ code นะครับตัวที่ทำให้ใหญ่ขึ้น compiler ฟ้องว่าเป็นตัวปัญหาครับ ส่วนที่ผมกำหนดค่าให้ array1 = number เพราะตอนไม่กำหนดค่าให้มัน มันฟ้องว่า Before merge sort
6 5 3 1 8 7 2 4 Exception in thread "main" java.lang.NullPointerException
at phase3.testmerge.sort(
testmerge.java:54
Edited by ทรงธรรม, 31 October 2012 - 10:58.
ขอให้พวกเรา ชาวหลากสี และพันธมิตร จงมีชีวิตรอด จากภาวะเศรษฐกิจตกต่ำ ฝีมือปูนา ไปตลอดรอดฝั่งด้วยครับ
PEMDAS ย่อมาจาก ลำดับการคำนวณ Parentheses , Exponentials , Multiply , Divide , Add , Subtract
FWGHSO ย่อมาจาก ลำดับการประเมินผลของ query FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY