---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
选择排序
遍历数组里的每个数字,与后面的每个数字比较大小,如果符合条件则进行置换。
- public static void selectSort(int[] arr) //由小到大排序
- {
- for(int x=0; x<arr.length-1; x++)
- {
- for(int y=x+1; y<arr.length; y++) //只需要与后面的比较
- {
- if(arr[x]>arr[y])
- {
- int temp = arr[x]; //暂时变量以便转换
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
- }
- }
冒泡排序
相邻的两个元素相互比较,比较规则自定义(假设由小到大排序),符合条件,交换位置,不符合条件,不用交换
- public static void bubbleSort(int[] arr) //由小到大排序
- {
- for(int x=0; x<arr.length-1; x++)
- {
- for(int y=0; y<arr.length-x-1; y++) //遍历一次后最大的元素到达最右边,所以下次不用参加比较,所以-x
- {
- if(arr[y]>arr[y+1])
- {
- int temp = arr[y];
- arr[y] = arr[y+1];
- arr[y+1] = temp;
- }
- }
- }
- }
二分查找
使用二分查找的数组必须是有序的数组
-
- public static int binarySeach(int[] arr,int key) //返回所要查找元素的角标,若元素不存在,返回-1
- {
- int min,mid,max;
- min = 0;
- max = arr.length-1;
- mid = (max+min)/2;
- while(arr[mid]!=key)
- {
- if(key>arr[mid])
- min = mid + 1;
- else if(key<arr[mid])
- max = mid - 1;
- if(min>max)
- return -1; //元素不存在
- mid = (max+min)/2;
- }
- return mid;
- }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------