点击(此处)折叠或打开
- //1、冒泡排序法(大的数往后放)
- class Bubble
- {
- //创建排序方法
- 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;
- }
- }
- }
- }
- }
- //2、选择排序法(从小到大)
- class Select
- {
- public void sort(int arr[])
- {
- int temp=0;
- for(int i=0;i<arr.length-1;i++)
- {
- //认为arr[i]最小
- int min=arr[i];
- //记录最小的数的下标
- int minIndex=i;
- //用我认为的数和后面的数以次比较,找到最小值
- for(int k=i+1;k<arr.length;k++)
- {
- //如果arr[i]不是最小的则修改值
- if(min>arr[k])
- {
- //修改最小
- min=arr[k];
- minIndex=k;
- }
- }
- //当退出for就找到了这次的最小值,并交换值
- temp=arr[i];
- arr[i]=arr[minIndex];
- arr[minIndex]=temp;
- }
- }
- }
- //3、插入排序法
- class InsertSort
- {
- public void sort (int arr[])
- {
- for(int i=1;i<arr.length;i++)
- {
- //insertVal是准备插入的数
- int insertVal=arr[i];
- //insertVal准备和前一个数比较
- int index=i-1; //前一个数的下标
- while(index>=0&&insertVal<arr[index])
- {
- //就把arr[index]向后移动一位
- arr[index+1]=arr[index];
- //让index向前移动
- index--;
- }
- //将insertVal插入到适当位置
- arr[index+1]=insertVal;
- }
- }
- }