数据结构与算法:掌握基础的排序方法
发表时间: 2019-09-05 16:27
简单排序有三种,分别是冒泡排序、选择排序和插入排序。
首先自定义一些数据和方法,待会排序算法需要用到,我都是用Java写的。
public static int[] data= {77, 99, 44, 55, 22, 88, 11, 66, 33}; public static void main(String[] var) { display(); insertSort(); display(); } public static void display () { //打印data[] for (int j=0; j<data.length; j++) { System.out.print(data[j] + " "); } System.out.println(""); } public static void swap (int one, int two) { //交换两个数据的位置 int temp = data[one]; data[one] = data[two]; data[two] = temp; }
冒泡排序思想:
private static void bubbleSort() { int out, in; for (out=data.length-1; out>0; out--) { for (in=0; in<out; in++) { if (data[in] > data[in+1]) { swap(in, in+1); } } } }
选择排序思想:
private static void selectionSort() { int left, right, temp; for (left=0; left<data.length-1; left++) { temp = left; for (right=left+1; right<data.length; right++) { if (data[right] < data[temp]) { temp = right; } } swap(left, temp); } }
插入排序思想:
private static void insertSort() { int in, out; for (out=1; out<data.length; out++) { int temp = data[out]; in = out-1; while (in>=0 && data[in]>temp) { data[in+1] = data[in]; in--; } data[in+1] = temp; } }
我大二上学期学完这门课,现在都忘了七七八八了,上述简单的三种排序我都忘了怎么写了,得多练练手,争取一碰到这种排序,都能在3分钟之内完成。