简单的整数排序,可以用选择排序、冒泡排序、插入排序。
抚顺网站建设公司创新互联,抚顺网站设计制作,有大型网站制作公司丰富经验。已为抚顺1000多家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的抚顺做网站的公司定做!
code demo:
public class SortDemo {
public static void main(String[] args) {
int[] ary = {3,1,5,6,2,6,8,3};
//ary = selectionSort(ary);
ary = insertSort(ary);
// 将数组ary连接为一个字符串: Arrays.toString(ary);
//如:{1, 2, 3}-"[1, 2, 3]"
String s = Arrays.toString(ary);
System.out.println(s);
}
/** 选择排序 */
public static int[] selectionSort(int[] ary){
for(int i=0; iary.length-1; i++ ){
for(int j=i+1; jary.length; j++){
if(ary[i]ary[j]){
int temp = ary[i];
ary[i] = ary[j];
ary[j] = temp;
}
}
}
return ary;
}
/** 冒泡排序 */
public static int[] bubleSort(int[] ary){
for(int i=0; iary.length-1; i++){
for(int j=0; jary.length-(1+i); j++){
if(ary[j] ary[j+1]){
int temp = ary[j];
ary[j] = ary[j+1];
ary[j+1] = temp;
}
}
}
return ary;
}
//插入排序
public static int[] insertSort(int[] ary){
//int[] ary = {3,1,5,6,2,6,8,3};
for(int i=1; iary.length; i++){
int temp = ary[i];
int j;
for(j=i-1; j=0 temp ary[j]; j--){
//if(temp ary[j]){
ary[j+1] = ary[j];
// }else{
// break;//找到插入位置
//}
}
ary[j+1] = temp;//插入操作
}
return ary;
}
}
可以实现比较器Comparator来定制排序方案,同时使用Colletions.sort的方式进行排序,代码如下:
public void sortDesc(ListLong s){
Collections.sort(s, new ComparatorLong() {
public int compare(Long o1, Long o2) {
Long result = o2 - o1;
return result.intValue();
}
});
s.forEach(item-{
System.out.print(item +" ");
});
}
同时常用的比较排序算法主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。
java的冒泡排序实现如下:
public static void bubbleSort(int []arr) { for(int i =0;iarr.length-1;i++) { for(int j=0;jarr.length-i-1;j++) {//-1为了防止溢出 if(arr[j]arr[j+1]) { int temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } }
还有非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。
import java.util.Arrays;
import java.util.Collection;
public class Demo2 {
public static void main(String[] args) {
// 这是你的三个数
int[] arr = { 12, 32, 18 };
// 两层嵌套循环
for (int i = 0; i arr.length; i++) {
for (int j = 0; j i; j++) {
// 如果后者小于前者,让他们交换位置,一直循环
// 直到每个数字都从头到尾跟数组里的每个数字比较一次
if (arr[i] arr[j]) {
// 这三步就是交换位置,相信聪明的你一定看得懂了
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
}
}
//最后打印出来
for (int i = 0; i arr.length; i++) {
System.out.println(arr[i]);
}
}
}
资料拓展:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论