JavaSE学习(8) 排序

来源:互联网 发布:端游发展史 知乎 编辑:程序博客网 时间:2024/06/10 20:20

1)内部排序:

将需要处理的所有数据都加载到内部存储器中进行排序

交换式排序法、选择式排序法和插入式排序法

2)数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。

合并排序和直接合并排序

排序:就是把一组记录(元素)按照某个域的值递增或递减的次序重新排列的过程。

交换式排序:

属于内部排序,运用数据值比较,依判断规则对数据位置进行交换,以达到排序的目的。

1、冒泡排序

2、快速排序


冒泡排序:

package com.test1;public class Demo5_3 {public static void main(String[] args) {// TODO Auto-generated method stubint arr[]={1,6,0,-1,9};int a=12;//创建一个Bubble类Bubble bubble=new Bubble();bubble.sort(arr);bubble.test(a);System.out.println(a);}}class Bubble{//测试public void test(int a){a++;}//排序方法public void sort(int arr[]){int temp=0;//排序//外层循环,它决定一共走几趟for(int i=0;i<arr.length-1;i++){//内层循环,开始逐个比较,如果发现前一个数比后一个数大,则交换for(int j=0;j<arr.length-1-i;j++){if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}//输出最后结果for(int i=0;i<arr.length;i++){System.out.print(arr[i]+" ");}}}
选择排序:


class Select{//选择排序public void sort(int arr[]){int temp=0;for(int j=0;j<arr.length;j++){//认为第一个数就是最小的int min=arr[j];//记录最小数的下标int minIndex=j;for(int k=j+1;k<arr.length;k++){if(min>arr[k]){//修改最小值min=arr[k];minIndex=k;}}//当退出for就找到这次的最小值temp=arr[j];arr[j]=arr[minIndex];arr[minIndex]=temp;}for(int i=0;i<arr.length;i++){System.out.print(arr[i]+"  ");}}}


0 0
原创粉丝点击