排序
相关阅读:
冒泡排序
冒泡排序的时间复杂度为 O(n^2)
冒泡排序的具体步骤请看下图:
这里在写一个简单的冒泡排序题目吧
题目:
对于一个int数组,请编写一个冒泡排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1, 2, 3, 5, 2, 3], 6
返回值:
[1, 2, 2, 3, 3, 5 ]
通过代码:
import java.util.*;
public class BubbleSort {
public int[] bubbleSort(int[] A, int n) {
// write code here
for(int i = 0; i < n; i++){
for(int j = 0; j < n - i -1; j++){
if(A[j] > A[j+1]){
int tem = A[j];
A[j] = A[j+1];
A[j+1] = tem;
}
}
}
return A;
}
}
选择排序
时间复杂度为 O(N^2)
选择排序的具体步骤请看下图:
题目:
对于一个int数组,请编写一个选择排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
通过代码:
import java.util.*;
public class SelectionSort {
public int[] selectionSort(int[] A, int n) {
int i,j,min,temp;
for(i = 0;i < n-1; i++)
{
min = i;
for(j = i+1;j < n; j++)
if(A[min] > A[j])
min = j;
if(min != i)
{
temp = A[min];
A[min] = A[i];
A[i] = temp;
}
}
return A;
}
}
插入排序
时间复杂度 O( N^2 )
插入排序的具体步骤请看下图:
题目:
对于一个int数组,请编写一个插入排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
测试样例:
[1,2,3,5,2,3], 6
[1,2,2,3,3,5]
通过代码:
import java.util.*;
public class InsertionSort {
public int[] insertionSort(int[] A, int n) {
int i, j, temp;
for(i = 1; i < n; i++){
temp = A[i];
for(j = i; j > 0 && A[j - 1] > temp; j-- ){
A[j] = A[j - 1];
}
A[j] = temp;
}
return A;
}
}