您的位置:首页 > 理论基础 > 数据结构算法

数据结构java语言的各种排序

2015-09-14 22:22 260 查看

数据结构排序

下面是作者自己在学习Java语言时做的一些基础练习的排序,在此和大家分享:

             将包含几种基本的排序方法的算法(先写两做最常用的排序,后续将更新更多的排序方式,有什么需要的请留言):冒泡排序,选择排序;

                     冒泡排序:

<span style="background-color: rgb(255, 255, 102);">/**
 * 冒泡排序
 * 以下是最差排序情况,为了理解算法
 */
public class SortByBubbling {
public static void main(String[] args) {
int[] numbers={6,5,4,3,2,1};//这是一个初始化的数组,也可以从控制台输入数据
System.out.print("   "+"未排序的数组:");
for(int starCurret:numbers){
System.out.print(starCurret+"\t");
}
System.out.println();
for(int i=0; i<numbers.length; i++){//控制排序的次数
for(int j=0;j<numbers.length-i-1;j++){//对当前的无序区间进行排序,
//减i的目的是对已经排序的数字不再进行比较
if(numbers[j]>numbers[j+1]){
int temp;
temp=numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"次排序的结果:");
//这是为了理解排序过程而写的,如果只为排序结果,可以将其删掉
for(int curret:numbers){//for each语句输出排序后的数组,魏见过的也可以改为for语句输出数组
                                 System.out.print(curret+"\t");
}
System.out.println();
}
}
}
<span style="color:#FF0000;">测试结果:</span>
<img src="https://img-blog.csdn.net/20150914232603569?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
</span>
           选择排序

        

<span style="background-color: rgb(255, 255, 51);"><span style="color:#000000;">/**
*选择排序:工作原理是每一次从待排序的数据元素
*中选出最小(或最大)的一个元素,存放在序列的
*起始位置,直到全部待排序的数据元素排完。
<span style="color:#FF0000;">java语言实现是利用第三方变量存下当前需排序数组的最小值(最大值,由大到小时)然后将其与前面的数组
交换数组下标实现找出最小值,然后比较最小值的小标与当前需排序的数字小标是否相同,不同则交换数据;
从而达到排序的目的;</span>
 */
public class selecteSort {
public static void sort(){
int[] numbers = new int[10] ;
/*初始化数组*/
System.out.println("排序前:");
for(int n=0; n<numbers.length;n++){
numbers
= (int)(Math.random()*101);
System.out.print(numbers
+"\t");//输出原始(排序前)数组
}//这是一个用随机数产生数组初始化
/*进行选择排序*/
System.out.println("\n"+"排序后:");
 for(int i=0; i<numbers.length;i++){
int	min = i;//存放最小值的数组下标
int temp = 0;//用于数据交换的第三方数据
for(int j=i+1; j<numbers.length;j++){
if(numbers[j]<numbers[min]){//找出当前最小值的小标存入min
min =j;
}
}
if(min != i){  //判断最小值数组小标与需排序数的小标位置是否相同
temp = numbers[i];
numbers[i] = numbers[min];
numbers[min] = temp;
}
System.out.print(numbers[i]+"\t");//输出排序后数据
}
}

public static void main(String[] args) {//写一个main方法调用排序方法sort();程序入口
sort();
}
}
测试结果(数据是随机产生的):
</span></span>



更多排序作者将持续更新。。。。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: