2022-7-15 pan小堂 数组排序算法
2022/7/16 1:20:56
本文主要是介绍2022-7-15 pan小堂 数组排序算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
二分查找(理解)
public ych class{ public static void main(String[] args){ ///运用二分查找需要 数组在的值是递升的 int[] arr1 = new int[] {23,43,5,41,32,423,4,123,411}; //先递升排列 sort() 递升排列函数 Arrays.sort(arr1); Scanner p1 = new Scanner(System.in); System.out.println("请输入一个数字"); int num =p1.nextInt(); int l = 0 , r = arr1.length()-1; int index=-1; while(l<=r){ int mid = l+r+1>>1; if(arr1[mid]==num){ index = mid; break; }else if(arr1[mid]<num){ l = mid+1; }else{ r = mid-1; } } if(index!=-1){ System.out.println("存在的值的下标为"+index +" 并且值为"+arr1[inde]); }else{ System.out.println("值不存在"); } } } }
冒泡排序
public class Ptz { public static void main(String[] args) { //冒泡排序 : 先头两个数先比较 然后大的数 与第三个数比较 大的数再与第4个数比较以此类推 int [] arr = new int [] {132,34,23,56,42,79,4,56,3}; for(int i = 0; i< arr.length-1;i++){//外层循环 for(int j ; j<arr.length-1-i;j++){//内层循环 if(arr[j]>arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; a[j+1] =temp; } } for( a : arr){ System.out.println(a); } } }
选择排序
public class Ptz { ///首先选择排序是 通过一次循环 把最小(最大)的值放在数组的第一个 public static void main(String[] args) { //思路: //1.定义一个下标 变量 用来存储 第一个数 //2.外层的循环是用来控制(内层循环)每次比较得出最小值(最大值)的次数 //3.内层循环用来一个一个比得出最小值(最大值) int [] ych =new int []{43,23,4,6,2,-1,42,4}; for(int i=0 ; i<ych.length-1;i++){ int index = i ; //存储 起始位下标 for(int j =i+1 ; j<ych.length;j++){//j=i+1 是经过交换选择后,起始位 if(ych[j]<ych[index]){ index=j; //交换得出最小值的下标 } //交换值 int temp = ych[index]; ych[index] = ych[j]; ych[j]=temp; } } System.out.println(Arrays.toString(ych)); }
}
插入排序(不是特别理解)
1.先看第一个数,将数组划分为有序和无序部分 2.无序部分的首个插入到有序部分 3.重复第2步直到无序部分全部插入有序 void InsertSort(int a[],int l) { int temp; int j; for(int i=1;i<l;i++) { if(a[i]<a[i-1]) { temp=a[i]; for(j=i-1;j>=0&&temp<a[j];j--) { a[j+1]=a[j]; } a[j+1]=temp; } for(int k=0;k<l;k++) cout<<a[k]<<" "; cout<<endl; } }
这篇关于2022-7-15 pan小堂 数组排序算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新