用Java编写算法
这次我将写一下使用Java进行排序算法的内容。
我会将其作为备忘录留下。
首先是冒泡排序。
这是一个在中文中频繁使用的算法,通过比较大小并交换顺序来进行排序。
static void bubble_Sort(int []data)
{
for(int s = data.length - 1; s > 0; --s)
{
for(int t = 0; t < s; ++t)
{
if(data[t] > data[t + 1])
{
int temp = data[t];
data[t] = data[t + 1];
data[t + 1] = temp;
}
}
}
}
接下来是快速排序。
它是一种算法,将数据集根据基准值分为大于和小于基准值的两部分,并利用新的基准值对分组进行递归重复相同的操作。
在排序算法中,它是最快结束的。
static void quick_Sort(int []data, int left, int right){
if (left >= right) {
return;
}
int p = data[(left + right)/2];
int l = left;
int r = right;
int temp;
while(l <= r) {
while(data[l] < p) { ++l; }
while(data[r] > p) { --r; }
if (l <= r) {
temp = data[l];
data[l] = data[r];
data[r] = temp;
++l;
--r;
}
}
quick_Sort(data, left, r); // ピボットより左側をクイックソート
quick_Sort(data, l, right); // ピボットより右側をクイックソート
}
顺便提一下,冒泡排序大约需要15秒左右,而快速排序大约只需要0.2秒左右。
快速排序太快了…
[补记]
经评论提醒,我已做出修改。
确认修正后,使用冒泡排序的时间为40秒。
这样,冒泡排序和快速排序都可以正常工作。
不好意思给您带来了麻烦