数据结构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>
更多排序作者将持续更新。。。。。。。。。。。
相关文章推荐
- 内存考点
- 【软考视频】数据结构
- 数据结构(树)
- 数据结构之队列 C++实现
- 数据结构与算法面试题80道
- 数据结构实践——初始化顺序表怎么就内存溢出了?
- 数据结构笔记#栈
- UIday1502:XML 、JSON 数据结构解析
- 哈工大数据结构与算法实验4
- 【前端也要学点数据结构】神奇的树状数组的三大应用
- 数据结构--线性表(加入一些运算)
- 数据结构(基本运算验证性实践路线)——顺序表
- 线性表【项目4 线性表-- 顺序表应用】之二
- 从一个集合中查找最大最小的N个元素——Python heapq 堆数据结构
- 线性表【项目4 线性表-- 顺序表应用】之一
- 数据结构学习笔记
- LRU缓存策略
- 【线性表项目1 - 线性表相关函数1】
- 数据结构实践——顺序表的基本运算2
- 【软考视频】数据结构与算法基础