初学小白 里面会有很多错误 仅记录每天的点滴所用 还望谅解 尽请指出。
排序:将一群数组,按照指定的顺序进行排列的过程
排序法内部排序法:指将需要处理的所有数据加载到内部存储器中进行排序
包括 交换式排序法 选择式排序法 插入式排序法
外部排序法:数据量过大无法加载于内存中。需要借助外部存储进行排序
包括:合并排序法和直接合并排序法
交换式排序法
冒泡排序法:
通过对待排序的序列从后向前依次比较相邻数据大小,根据数据大小判断是否发生顺序交换
package com.yyf;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]={4,6,3,2,5,10,-7};
Bubble b= new Bubble();
b.sort(arr);
}
}
class Bubble{ //冒泡排序法
public void sort(int arr[]){
int temp=0; //中间变量 temp
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]+" "); //遍历数组 输出
}
}
}
选择排序法:第一次从R[0]到R[n-1]中选取最小值 与R[0]交换,第二次从R[1]到R[n-1]中选取最小值与R[1]交换
直到全部选出最小值且交换 共选择n-1次。代码演示为:
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]={4,6,3,2,5,10,-7};
Select s= new Select();
s.sort(arr);
}
}
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]){ //把J与(K以及K后)的各个元素进行比较
min=arr[k]; //找出其中的最小值
minIndex=k;
}
}
temp=arr[j]; //最小值与J交换 进行排序
arr[j]=arr[minIndex];
arr[minIndex]=temp;
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}