首页 / JAVA / Java的几种简单排序
Java的几种简单排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java的几种简单排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3019字,纯文字阅读大概需要5分钟。
内容图文
Java的几种排序
冒泡排序
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。
插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
希尔排序
是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法,希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止。
练习的代码部分
package chapter02;
public class Sort {
//选择排序
public static void SelectSort(int[] arr, int[] tmpe, String string) {
//拷贝字符串,这样源数组不会更改,还可以继续进行下一个排序运算
System.arraycopy(arr, 0, tmpe, 0, arr.length);
int tmp;//中间变量
System.out.println(string);
for (int i = 0; i < tmpe.length; i++) {
for (int j = i + 1; j < tmpe.length; j++) {
if (tmpe[i] > tmpe[j]) {
tmp = tmpe[i];
tmpe[i] = tmpe[j];
tmpe[j] = tmp;
}
}
}
for (int i : tmpe) {
System.out.print(i + " ");
}
System.out.println();
}
//插入排序
public static void InesertSort(int[] arr, int[] tmpe, String string) {
System.arraycopy(arr, 0, tmpe, 0, arr.length);
int tmp;//中间变量
System.out.println(string);
for (int i = 0; i < tmpe.length; i++) {
tmp = tmpe[i];
int j;
for (j = i; j > 0 && tmpe[j - 1] > tmp; j--) {
tmpe[j] = tmpe[j - 1];
}
tmpe[j] = tmp;
}
for (int i : tmpe) {
System.out.print(i + " ");
}
System.out.println();
}
//希尔函数
public static void ShellSort(int[] arr, int[] tmpe, String string) {
System.arraycopy(arr, 0, tmpe, 0, arr.length);
System.out.println(string);
int tmp;
int i, j;
for (int increment = tmpe.length; increment > 0; increment /= 2) {
//System.out.println("increment"+increment);
for (i = increment; i < tmpe.length; i++) {
tmp = tmpe[i];
for (j = i - increment; j >= 0; j -= increment) {
if (tmp < tmpe[j]) {
tmpe[j + increment] = tmpe[j];
} else {
break;
}
}
tmpe[j + increment] = tmp;
}
}
for (int k : tmpe) {
System.out.print(k+" ");
}
}
}
package chapter02;
public class Main {
public static void main(String[] args) {
int[] arr={5,2,4,8,9,6,4,6,5,1};
/*
System.out.println("原来顺序:");
for (int anArr : arr) {
System.out.print(anArr + " ");
}
System.out.println(" ");
int[] result_arr= Sort.SelectSort(arr);
System.out.println("选择排序的顺序:");
for (int aResult_arr : result_arr) {
System.out.print(aResult_arr + " ");
}
*/
int[] tmpe= new int[10];
Sort.SelectSort(arr,tmpe,"选择排序");
Sort.InesertSort(arr,tmpe,"插入排序");
Sort.ShellSort(arr,tmpe,"希尔排序");
}
}
还没有完成...……
内容总结
以上是互联网集市为您收集整理的Java的几种简单排序全部内容,希望文章能够帮你解决Java的几种简单排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。