Java排序算法概述以及代码实现上
- 选择排序。算法:扫描整个列表,从中找出最小的元素然后和第一个元素互换位置;扫描从1到n-1的数组列表,从中找出最小元素,再和第二个元素交换位置……与此类似,在对列表进行第i次扫描时,,该算法从最后n-i 个元素中找出最小元素,放在他应该放置的位置,整个列表进行了n-1次后,就排好序了。
1 //选择排序 2 public class Solution { 3 /* 4 * @param A: an integer array 5 * @return: 6 */ 7 public void sortIntegers(int[] a) { 8 // write your code here 9 int min = 0; 10 int n = a.length; 11 for(int i = 0;i<n-1;i++){ 12 min = i; 13 for(int j = i+1;j<n;j++){ 14 if(a[j]<a[min]) 15 min = j; 16 int temp; 17 temp=a[i]; 18 a[i]=a[min]; 19 a[min]=temp; 20 } 21 } 22 } 23 }
- 冒泡排序。算法简述:数组元素就像是水里的泡泡一样,一个一个向上浮,具体算法是比较表中的相邻元素,如果 逆序就交换位置,重复多次后,最大的元素就沉到最后了,此时检查逆序的长度-1,使得第二大元素沉到倒数第二个位置去,以此类推,等到n-1 遍的时候,整个数组序列就有序了。
1 //冒泡排序 2 public class Solution { 3 /* 4 * @param A: an integer array 5 * @return: 6 */ 7 public void sortIntegers(int[] a) { 8 // write your code here 9 int n = a.length; 10 for (int i=0;i<n-1;i++) 11 for (int j=0;j<n-i-1;j++) 12 { 13 if (a[j]>a[j+1]) // 这里是从小到大排序,如果是从大到小排序,只需将“<”换成“>” 14 { 15 int temp; 16 temp=a[j]; 17 a[j]=a[j+1]; 18 a[j+1]=temp; 19 } 20 } 21 } 22 }
- 插入排序。通过迭代的方式,首先保证前两个元素有序,然后将第三个元素插入到里面去,具体操作:前n-i个元素有序,将,第n-i+1个元素插入到有序序列中去,从右向左扫描前面这个有序的数组,找到第一个小于或等于第n-i+1个元素的元素,将第n-i+1个元素插入到该元素的后面去。
1 //插入排序 2 public class Solution { 3 /* 4 * @param A: an integer array 5 * @return: 6 */ 7 public void sortIntegers(int[] a) { 8 // write your code here 9 int v = 0; 10 int j; 11 int n = a.length; 12 for(int i = 1;i<n;i++){ 13 v = a[i]; 14 j = i-1; 15 while(j>=0&&a[j]>v){ 16 a[j+1] = a[j]; 17 j--; 18 } 19 a[j+1] = v; 20 } 21 } 22 }
你荒废的今日,正是昨日殒身之人祈求的明日。

浙公网安备 33010602011771号