Java基础——选择排序、冒泡排序

1.选择排序

原理是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,

顺序放入新数组,直到全部拿完

代码演示:

 1 public class Test3 {
 2     public static void main(String[] args) {
 3         int[] arr = { 3, 9, 81, 8, 5, 10 };
 4         selectSort(arr);
 5         print(arr);
 6     }
 7
 8     /* 选择排序:原理是第i个元素和剩余元素的比较次数 */
 9     public static void selectSort(int[] arr) {
10         for (int i = 0; i < arr.length - 1; i++) {
11             for (int j = i + 1; j < arr.length; j++) {
12                 if (arr[i] > arr[j]) {
13                     int temp = arr[i];
14                     arr[i] = arr[j];
15                     arr[j] = temp;
16                 }
17             }
18         }
19     }
20
21     /* 排序后打印函数 */
22     public static void print(int[] arr) {
23         System.out.print("{");
24         for (int i = 0; i < arr.length; i++) {
25             if (i < arr.length - 1)
26                 System.out.print(arr[i] + ",");
27             else
28                 System.out.print(arr[i]);
29         }
30         System.out.print("}");
31     }
32 }

第10行的for循环控制的是总的比较次数,第11行for循环控制的是第i个数(最小值或最大值)和剩余的比较次数

2.冒泡排序

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束

代码示例:

 1 public class Test4 {
 2     public static void main(String[] args) {
 3         int[] arr = { 3, 9, 81, 8, 5, 10 };
 4         bubbleSort(arr);
 5         print(arr);
 6     }
 7
 8     public static void bubbleSort(int[] arr) {
 9         for (int i = 0; i < arr.length - 1; i++) {
10             for (int j = i; j < arr.length; j++) {
11                 if (arr[i] > arr[j]) {
12                     int temp = arr[i];
13                     arr[i] = arr[j];
14                     arr[j] = temp;
15                 }
16             }
17         }
18     }
19
20     /* 排序后打印函数 */
21     public static void print(int[] arr) {
22         System.out.print("{");
23         for (int i = 0; i < arr.length; i++) {
24             if (i < arr.length - 1)
25                 System.out.print(arr[i] + ",");
26             else
27                 System.out.print(arr[i]);
28         }
29         System.out.print("}");
30     }
31 }
时间: 2024-08-02 12:01:57

Java基础——选择排序、冒泡排序的相关文章

01. Java的经典排序--选择排序--冒泡排序--折半查找(二分查找)

Java的经典排序--选择排序--冒泡排序--折半查找 选择排序 选择排序 3 2 1 5 8 0 1 3 2 5 8 1 1 2 3 5 8 2 1 2 3 5 8 3 1 2 3 5 8 public static void main(String[] args) { int[] arr={3,2,1,5,8}; selectSort(arr); for(int i = 0 ; i < arr.length ; i ++){ System.out.println(arr[i]) ; } }

java之选择排序

 //选择排序(Select Sorting)也是一种简单的排序方法.它的基本思想是:第一次从R[0]-R[n-1]中选取最小值,与R[0]交换,第二次从R[1]-R[n-1]中选取最小值,与R[1]交换,第三次从R[2]-R[n-1]中选取最小值,与R[2]交换,...,第i次从R[i-1]-R[n-1]中选取最小值,与R[i-1]交换,...,第n-1次从R[n-2]-R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列. public st

java基础算法--排序大全

1 package sorting; 2 3 import java.util.*; 4 //import java.util.Comparator; 5 //import java.util.PriorityQueue; 6 //import java.util.Queue; 7 8 public class Sorting { 9 /************************************序言******************************************

Java习题(选择,冒泡排序,折半查找)

解决问题如下: 1.求1+2!+3!+...+20!的和. 2.获取数组中的最大和最小值. 3.对数组进行选择排序.冒泡排序. 4.在数组中查找某个数的位置(折半查找). 折半查找:      适合顺序表的查找,数组中存的是按顺序排列的元素,方法如下:定义变量low,mid,high分别指向数组中的最低位,中间和最高位的元素:比较要查找的元素和mid指向的元素,如果比mid大,则在mid和high之间继续查找,low=mid+1; 否则在low和mid之间继续查找,high=mid-1.直到lo

java实现选择排序

<span style="font-size:18px;">package two.java.test; /** * java中的选择排序 * @author hello * */ public class SelectionSort{ public static void main(String args[ ]){ int [ ]intArray={12,11,45,6,8,43,40,57,3,20}; int keyValue;//选择值 int index;//数组

简单分析选择排序,冒泡排序

1,选择排序的原理  1.1 选择排序就是会依次利用每一位索引上的值,与它后面的所有值进行比较,而且在每经过一轮比较,最值就会出现在最前面 2,冒泡排序的原理  2.1 冒泡排序的原理就是两个相邻的元素进行比较,每比较一轮,最值就会出现在最后面 #include <stdio.h>void getLow(int count[],int length);void countNumber(int count1[],int length);void getLarge(int count[],int

选择排序&amp;冒泡排序&amp;折半查找

//选择排序 void test2(int a[],int len){ //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储 //    假如第一个是最小值 int mine=0; int teamp=0; //    外层负责趟数 for (int i=0; i<len; i++) { //    假如每一次的第一个是最小值 mine=i; //    内层负责寻找每趟的最小值 //        每次起始比较值都不一样所以j=i+1,改变次数

选择排序 冒泡排序 简单插入排序

排序: public class SortDemo { public static void main(String[] args) { int[] arr = { 5, 8, 9, 12, 55, 565, 421, 12, 2512, -5, -56 }; // int[] arr = { 6, 9, 4589, 442, 458, 5232, -788, 7, 545, -44, 55, -11 // }; // selectionSort(arr); // bubbleSort(arr)

选择排序 冒泡排序 插入排序

1.选择排序 每一次找出最小的值,放在最前面的位置,一个一个安置 //选择排序 #include<iostream> #include<climits> using namespace std; template<class T> void gcd(T a[],int n){ int mix,temp; for(int i=0;i<n-1;i++){ mix=i; for(int j=i+1;j<n;j++) if(a[j]<a[mix]) mix=j