冒泡排序算法与选择排序算法

  1 数组高级以及Arrays(掌握)
  2     (1)排序
  3         A:冒泡排序
  4             相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。
  5
  6             public static void bubbleSort(int[] arr) {
  7                 for(int x=0; x<arr.length-1; x++) {
  8                     for(int y=0; y<arr.length-1-x; y++) {
  9                         if(arr[y] > arr[y+1]) {
 10                             int temp = arr[y];
 11                             arr[y] = arr[y+1];
 12                             arr[y+1] = temp;
 13                         }
 14                     }
 15                 }
 16             }
 17
 18         B:选择排序
 19             把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。
 20
 21             public static void selectSort(int[] arr) {
 22                 for(int x=0; x<arr.length-1; x++) {
 23                     for(int y=x+1; y<arr.length; y++) {
 24                         if(arr[y] < arr[x]) {
 25                             int temp = arr[x];
 26                             arr[x] = arr[y];
 27                             arr[y] = temp;
 28                         }
 29                     }
 30                 }
 31             }
 32     (2)查找
 33         A:基本查找
 34             针对数组无序的情况
 35
 36             public static int getIndex(int[] arr,int value) {
 37                 int index = -1;
 38
 39                 for(int x=0; x<arr.length; x++) {
 40                     if(arr[x] == value) {
 41                         index = x;
 42                         break;
 43                     }
 44                 }
 45
 46                 return index;
 47             }
 48         B:二分查找(折半查找)
 49             针对数组有序的情况(千万不要先排序,在查找)
 50
 51             public static int binarySearch(int[] arr,int value) {
 52                 int min = 0;
 53                 int max = arr.length-1;
 54                 int mid = (min+max)/2;
 55
 56                 while(arr[mid] != value) {
 57                     if(arr[mid] > value) {
 58                         max = mid - 1;
 59                     }else if(arr[mid] < value) {
 60                         min = mid + 1;
 61                     }
 62
 63                     if(min > max) {
 64                         return -1;
 65                     }
 66
 67                     mid = (min+max)/2;
 68                 }
 69
 70                 return mid;
 71             }
 72     (3)Arrays工具类
 73         A:是针对数组进行操作的工具类。包括排序和查找等功能。
 74         B:要掌握的方法(自己补齐方法)
 75             把数组转成字符串:
 76             排序:
 77             二分查找:
 78     (4)Arrays工具类的源码解析
 79     (5)把字符串中的字符进行排序
 80         举例:
 81             "edacbgf"
 82             得到结果
 83             "abcdefg"
 84
 85 3:Integer(掌握)
 86     (1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
 87         byte         Byte
 88         short        Short
 89         int            Integer
 90         long        Long
 91         float        Float
 92         double        Double
 93         char        Character
 94         boolean        Boolean
 95     (2)Integer的构造方法
 96         A:Integer i = new Integer(100);
 97         B:Integer i = new Integer("100");
 98             注意:这里的字符串必须是由数字字符组成
 99     (3)String和int的相互转换
100         A:String -- int
101             Integer.parseInt("100");
102         B:int -- String
103             String.valueOf(100);
104     (4)其他的功能
105         进制转换
106     (5)JDK5的新特性
107         自动装箱    基本类型--引用类型
108         自动拆箱    引用类型--基本类型
109
110         把下面的这个代码理解即可:
111             Integer i = 100;
112             i += 200;
时间: 2024-07-30 03:55:55

冒泡排序算法与选择排序算法的相关文章

冒泡排序算法和选择排序算法

这是最基本的两种排序算法,比它效率高的还有归并排序,堆排序,快速排序等算法,作为一个IT民工应该好好掌握. 冒泡排序和选择排序都有两层循环,下面逐一介绍: 冒泡排序: 1.外层循环,控制冒泡次数,起始从loop=1开始,结束标识是loop<length,循环length-1次(从数组的第二个数开始冒泡). 2.内层循环,选出对应轮的最大数,即第K轮冒泡选出的是第N-k-1大的数,故循环从loop=0开始,结束标志loop<N-k,循环N-k次. 选择排序: 1.外层循环,控制比较次数,第i轮设

C语言排序算法——简单选择排序算法

冒泡排序算法的思想是不断的交换,通过交换完成最终的排序. 选择排序的基本思想是每一趟在n-i+1个记录中选取最小的记录,作为第i个的记录. 1 void SimpleSelectSort(int *p) 2 { 3 int i,j,min; 4 for(i=0;i<10;i++) 5 { 6 min=i;    //将当前下标定义为最小下标 7 for(j=i+1;j<10;j++) 8 { 9 if(p[min>p[j]])    //如果有小于当前最小值的 10 { 11 min=j

算法之选择排序算法

思路: 选择排序每次迭代都在寻找剩下的数组元素中的最小值(最大值),依次拿数组中的一个元素和剩下的元素进行比较.然后把该极值移动到数组的另一边. 原始数组: 5  9  4  6  7  3  2 一次迭代: 2  9  4  6  7  3  5 2  3  4  6  7  9  5 2  3  4  6  7  9  5 2  3  4  5  7  9  6 2  3  4  5  6  9  7 2  3  4  5  6  7  9 template< class T > void

基础算法之选择排序算法

基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换:然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止. 代码: >>> def select_sort(array): for i in range(len(array)-1): for j in range(i+1,len(array)): if array[i] > array[j]: temp = array

【排序算法】选择排序

选择排序算法原理 选择排序算法时间复杂度分析 选择排序算法稳定性分析 选择排序算法C语言代码 #include <stdio.h> //交换两个元素的值 void swap(int* a, int* b) { int temp; temp = *a; *a = *b; *b = temp; } void selectionSort(int arr[], int length) { int i, j, maxIndex; for(i = length; i > 0; i--) { //假设

I学霸官方免费教程二十八:Java排序算法之选择排序和冒泡排序

选择排序 步骤一.选取一组数据中起始位置(下标)上的数据,和其后的各个位置(下标)上数据进行比较:如果起始位置(下标)上的数据大(升序)或小(降序),就将两个位置上的数据进行交换:这样完成一轮比较之后,起始位置上的数据就是最小或最大了步骤二.再次选取第二个位置上的数据,和其后各个位置上的数据进行比较.如此重复,就可将数据进行排序了. 实例: package algorithm.sort; /**  * 演示选择排序算法  * @author 学霸联盟 - 赵灿  */ public class 

七大内部排序算法总结(插入排序、希尔排序、冒泡排序、简单选择排序、快速排序、归并排序、堆排序)

 写在前面: 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.因此排序掌握各种排序算法非常重要.对下面介绍的各个排序,我们假定所有排序的关键字都是整数.对传入函数的参数默认是已经检查好了的.只是简单的描述各个算法并给出了具体实现代码,并未做其他深究探讨. 基础知识: 由于待排序的记录数量不同,使得排序过程中设计的存储器不同,可将排序方法分为两大类:一类是内部排序,指的是待排序记录存放在计算机随机存储器中进行的排序过程.另一类是外部排序,

排序算法学习之简单排序(冒泡排序,简单选择排序,直接插入排序)

一.冒泡排序 冒泡排序算是最基础的一种算法了,复杂度为O(N^2),其基本思想是:从最低端数据开始,两两相邻比较,如果反序则交换.代码如下: /*最基本的冒泡排序*/ void BubbleSort1 (int n, int *array) /*little > big*/ { int i, j; for (i=0; i<n-1; i++) { for (j=n-1; j>i; j--) { if (array[j] < array[j-1]) { int temp = array

冒泡排序算法和简单选择排序算法的js实现

之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(data) { for(let i=0;i<data.length-1;i++){ for(let j=0;j<data.length-1-i;j++){ if(data[j]>data[j+1]){ [data[j],data[j+1]]=[data[j+1],data[j]]; } } }