java常見數據算法_選擇排序
阿新 • • 發佈:2018-08-05
遍歷 如果能 spl long 所有 java change lean str 選擇排序的原理:
遍歷所有的元素,得到最小的元素,並將最小的元素與左邊第一個元素進行交換,再次遍歷除了第一個位置的所有元素,得到最小的元素,與左邊第二個元素進行交換。當進行第二次遍歷的時候,將最小的元素與左邊的第二個元素進行交換,如此循環遍歷,即可得到排序後的元素。
Demo實現的基本基本步驟:
1、準備數組
2、編寫常見的數組操作方法
3、編寫選擇排序的方法
4、測試選擇排序
具體參考如下:
package com.zcp.ch03;
遍歷所有的元素,得到最小的元素,並將最小的元素與左邊第一個元素進行交換,再次遍歷除了第一個位置的所有元素,得到最小的元素,與左邊第二個元素進行交換。當進行第二次遍歷的時候,將最小的元素與左邊的第二個元素進行交換,如此循環遍歷,即可得到排序後的元素。
Demo實現的基本基本步驟:
1、準備數組
2、編寫常見的數組操作方法
3、編寫選擇排序的方法
4、測試選擇排序
具體參考如下:
package com.zcp.ch03;
/**
- @author Administrator
-
冒泡排序的實現
*/
public class SelectArray {//數組
private long[] arr = null;//數組中有效數據的大小
private int elems;
public SelectArray() {
arr = new long[50];
}public SelectArray(int length){
arr = new long[length];
}/**
- 插入數據的操作
- @param value
*/
public void insert(long value){
arr[elems] = value;
elems++;
}
/**
- 查找指定的數據,如果能夠查找到則返回數組的坐標,否則返回-1.
- @param value
-
@return
*/
public int find(long value){
for(i=0;i<elems;i++){
if(value==arr[i])
break;
}if(i >(elems-1)){
return -1;
}return i;
}
/***
- 刪除數據的操作,刪除成功返回true,刪除失敗返回false
-
@param value
*/
public boolean delete(long value){int key = find(value);
if(key == -1){
System.out.println("刪除數據失敗,未查找到要刪除的數據");
return false;
}
for (int i = key; i < elems; i++) {
}
elems--;
return true;
}
/***
- @param oldValue
- @param newValue
- @return 如果修改成功返回true,修改失敗返回false
*/
public boolean changeValue(long oldValue,long newValue){
int key = find(oldValue);
if(key == -1){
System.out.println("需要修改的數據不存在,修改失敗");
return false;
}
arr[key] = newValue;
return true;
}
/**
- 該方法主要是實現了選擇排序
- 具體的實現描述如下:
- 該方法中的min 即表示最小的元素
- 在進行一次遍歷後就將最小的元素放到數組的最左邊,然後循環進行即可實現選擇排序
-
*/
public void selectSort(){int min = 0;
long tmp = 0;
for (int i = 0; i < elems-1; i++) {for (int j = i; j < elems; j++) { if(arr[min] > arr[j]){ min = j; } } tmp = arr[i]; arr[i] = arr[min]; arr[min] = tmp;
}
}
/**
- 該方法主要是變量數組並顯示
*/
public void disPlay(){
for (int i = 0; i < elems; i++) {
System.out.print(arr[i]+ " " );
}
System.out.println();
}
}
測試代碼如下:
package com.zcp.ch03;
public class TestSelectMain {
public static void main(String[] args) {
SelectArray bubbleArray = new SelectArray();
bubbleArray.insert(10);
bubbleArray.insert(50);
bubbleArray.insert(80);
bubbleArray.insert(2);
bubbleArray.insert(2);
bubbleArray.disPlay();
bubbleArray.selectSort();;
System.out.println("選擇排序後的數據如下:");
bubbleArray.disPlay();
}
}
java常見數據算法_選擇排序