packagesort.algorithm;
//快速排序演算法:是一種交換排序
public
class
quiksort ;
quiksort sort =
new
quiksort();
sort.sortarray(data,
0
, data.length -
1
);
for
(
int
i =
0
; i < data.length; i++)
system.out.print(data[i] +
" "
);
}
// 這裡不用返回值,直接對傳入的陣列進行操作
public
void
sortarray(
int
data,
int
first,
int
end)
// 然後從左邊向右邊開始掃瞄,找到乙個大於temp的元素
while
(i < j && temp > data[i])
i++;
if
(i < j)
}
// 將軸資料放在i位置中
data[i] = temp;
sortarray(data, first, i -
1
);
sortarray(data, i +
1
, end);
}
}
}
內部排序 交換類排序 快速排序
在氣泡排序中,由於掃瞄過程中只對相鄰的兩個元素進行比較,因此在互換兩個相鄰元素時只能消除乙個逆序,如果能通過兩個 不相鄰的 元素的交換,消除待排序記錄中的多個逆序則會大大加快排序的速度。快速排序方法中的一次交換可以消除多個逆序。演算法思想 從待排序記錄序列中選取乙個記錄 通常選取第乙個記錄 為樞軸,...
交換排序之快速排序
1.基本思想 假設要排序的陣列是array 0 array n 1 首先任意選取乙個資料 通常選用第乙個資料 作為關鍵資料,然後將所有比它的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候i 0,j n 1 2 以第...
交換排序之快速排序
問題及 檔名稱 main.cpp 作 者 徐群壯 完成日期 2015.12.15 版 本 號 v1.0 問題描述 資料結構例程 交換排序之快速排序 輸入描述 程式輸出 1.以第1個元素作為基準 include define maxsize 20 typedef int keytype 定義關鍵字型別...