Java算法排序实验的实验心得_20192312吴欣欣 实验七《查找与排序》实验报告

本文是吴欣欣同学关于《程序设计与数据结构》课程实验七《查找与排序》的报告,详细介绍了实现线性搜索、选择排序、二分搜索、哈希搜索、分块搜索等多种算法的过程,以及代码重构和测试的经验,同时探讨了使用IDEA和命令行进行编译运行的方法。

20192312 2020-2021-1 实验七 《查找与排序》实验报告

课程:《程序设计与数据结构》

班级: 1923

姓名: 吴欣欣

学号:20192312

实验教师:王志强

实验日期:2020年11月26日

必修/选修: 必修

1.实验内容

1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。

要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位

提交运行结果图。

2.重构你的代码

把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)

把测试代码放test包中

重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)

3.参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试

提交运行结果截图

4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)

测试实现的算法(正常,异常,边界)

提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

5.编写Android程序对实现各种查找与排序算法进行测试

提交运行结果截图

推送代码到码云(选做,加分)

2.实验过程及结果

1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。

要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位

提交运行结果图。

Searching代码

package ex7;

import com.ibm.icu.impl.UResource;

import java.util.Arrays;

import java.util.Scanner;

public class Searching {

int data[];

public Searching(int m[]){

data=m;

}

public int[] Input(){

final int CAPACITY=3;

data=new int[CAPACITY];

int i=0;

Scanner scan=new Scanner(System.in);

System.out.print("输入数组(以*作为结尾):");

while(scan.hasNextInt()){

if(i==data.length)

data= Arrays.copyOf(data,data.length+CAPACITY);

data[i]=scan.nextInt();

i++;

}

scan.next();

return data;

}

public int LinearSearch(int target){

int m[]=Arrays.copyOf(data,data.length+1);

int i,tail=m.length-1;

m[tail]=target;

for(i=0;;i++){

if(m[i]==target)return i+1;

}

}

}

08e680b6612d933f3e8607e6e2201026.png

Sorting代码

package ex7;

import java.util.Arrays;

import java.util.Scanner;

public class Sorting {

int []data;

int top;

public Sorting(int m[]){

data=m;

}

public void Input() {

final int CAPACITY = 3;

data= new int[CAPACITY];

Scanner scan = new Scanner(System.in);

int i = 0;

System.out.print("输入数组(以*作为结尾):");

while (scan.hasNextInt()) {

if (i == data.length)

data = Arrays.copyOf(data, data.length + CAPACITY);

data[i] = scan.nextInt();

i++;

}

top=i;

scan.next();

}

public void swap(int []m,int a,int b){

int temp;

temp=m[a];

m[a]=m[b];

m[b]=temp;

}

public void Print(int m[]){

for(int i=0;i

System.out.print(m[i]+" ");

}

System.out.println("");

}

public void SelectionSort(){

int i,j;

for(i=0;i

int temp=i;

for(j=i+1;j

if(data[j]

temp=j;

}

if(temp!=i) {

swap(data, temp, i);

}

}

Print(data);

}

}

bb06cc7691defccfb928cc0ef2691ebd.png

f618bb9d2b49f399c237af134f99d5c6.png

b266afedee0fbd2c414968cfebeb94ca.png

85a7a82a7cc6365aa4afd5f8b437e7c1.png

3114909895b9043bba5fe2ccda500b12.png

804dbbbc0280f0bcf12070884669dde9.png

d9f365d51d462188599c3bee7133f32d.png

2.重构你的代码

把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)

把测试代码放test包中

重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)

7ad29111fb9c524949570245c38b8628.png

0561335155ad81afadd603125514a393.png

07e4e1930f34ee259ec9f8a0ba8cd470.png

1d7dead63f6fdbc5bba42094124a2668.png

982e6ba88b7cd38cf707671205ac78a6.png

d7ece982230810d4b0bfe7f43bfb871b.png

3.参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试

提交运行结果截图

Node

package cn.edu.besti.cs1923.W2312;

public class Node {

int index;

public int data;//关键字段

public Node leftNode;//左节点

public Node rightNode;//右节点

public Node() {

index=-1;

this.data = -1;

leftNode = null;

rightNode = null;

}

public Node(int value,int i) {

index=i;

this.data = value;

leftNode = null;

rightNode = null;

}

public int findNode(Node root, int key) {

Node current = root;

while (current.data != key) {

if (key < current.data) {//左节点

current = current.leftNode;

} else {//右节点

current = current.rightNode;

}

if (current == null) {

return -1;

}

}

return current.index+1;

}

public Node InsertNode(int m[]) {

Node root = new Node(m[0],0);

int i=1;

while (m[i] != 0 && i < m.length) {

Node current = root;

while(current.data!=m[i]){

if(m[i]

if(current.leftNode==null)

current.leftNode=new Node(m[i],i);

current=current.leftNode;

}

else if (m[i]>current.data){

if(current.rightNode==null)

current.rightNode=new Node(m[i],i);

current=current.rightNode;

}

}

i++;

}

return root;

}

}

Searching

package cn.edu.besti.cs1923.W2312;

import java.util.Arrays;

import java.util.Scanner;

public class Searching {

int data[];

int top;

public Searching(int m[]){

data=m;

for(top=0;top

}

public int[] Input(){

final int CAPACITY=3;

data=new int[CAPACITY];

int i=0;

Scanner scan=new Scanner(System.in);

System.out.print("输入数组(以*作为结尾):");

while(scan.hasNextInt()){

if(i==data.length)

data= Arrays.copyOf(data,data.length+CAPACITY);

data[i]=scan.nextInt();

i++;

}

top=i;

scan.next();

return data;

}

public int LinearSearch(int data[],int target){

int m[]=Arrays.copyOf(data,data.length+1);

int i,tail=m.length-1;

m[tail]=target;

for(i=0;;i++){

if(m[i]==target){

if(i==m.length-1)return -1;

else return i+1;

}

}

}

public int BinarySearch(int t[] ,int min,int max,int target,int i){

int m[]=Arrays.copyOf(t,t.length+1);

int mid=(min+max)/2;

if(i==0) {

Sorting sort=new Sorting(m);

sort.SelectionSort();

}

if(target==m[mid])return mid+1;

else if(target>m[mid]) {

if(mid>=min&&mid<=max)

return BinarySearch(m, mid + 1, max, target, i + 1);

else return -1;

}

else {

if(mid>=min&&mid<=max)

return BinarySearch(m, min, mid - 1, target, i + 1);

else return -1;

}

}

public int InsertSearch(int t[] ,int min,int max,int target,int i){

int m[]=Arrays.copyOf(t,t.length+1);

int mid=min+(target-m[min])/(m[max]-m[min])*(max-min);

if(i==0){

Sorting sort =new Sorting(m);

sort.SelectionSort();

}

if(target==m[mid])return mid+1;

else if(target>m[mid]) {

if(mid>=min&&mid<=max)

return BinarySearch(m, mid + 1, max, target, i + 1);

else return -1;

}

else {

if(mid>=min&&mid<=max)

return BinarySearch(m, min, mid - 1, target, i + 1);

else return -1;

}

}

public int FibonacciSearch(int data[] ,int length,int target){

int low=0;

int high=length-1;

int F[]=new int[20];

int m[]=Arrays.copyOf(data,data.length+1);

Sorting sort=new Sorting(m);

sort.SelectionSort();

Fibonacci(F);//构造一个斐波那契数组F

int k=0;

while(length>F[k]-1)//计算n位于斐波那契数列的位置

++k;

int [] temp;//将数组a扩展到F[k]-1的长度

temp=Arrays.copyOf(m,F[k]-1);

for(int i=length;i

temp[i]=m[length-1];

while(low<=high)

{

int mid=low+F[k-1]-1;

if(target

{

high=mid-1;

k-=1;

}

else if(target>temp[mid])

{

low=mid+1;

k-=2;

}

else

{

if(mid

return mid+1; //若相等则说明mid即为查找到的位置

else

return length; //若mid>=n则说明是扩展的数值,返回n-1

}

}

return -1;

}

public void Fibonacci(int F[])

{

F[0]=0;

F[1]=1;

for(int i=2;i<20;++i)

F[i]=F[i-1]+F[i-2];

}

public int BinaryTreeSearch(int data[],int target){

int m[]=Arrays.copyOf(data,top+1);

Node node=new Node();

node.InsertNode(m);

return node.findNode(node.InsertNode(m),target);

}

public int HashSearch(int data[] ,int target){

int m[]=HashInsert(data);

int l=m.length;

int i=target%l,j=target%l;

if(target==m[i])return i+1;

for( i=(i+1)%l;i!=j;i=(i+1)%l){

if(target==m[i])return i+1;

}

return -1;

}

public int[] HashInsert(int data[]){

int m[]=new int[top];

int j=0,l=m.length;

for(int i=0;i

j=data[i]%l;

if(m[j]==0)m[j]=data[i];

else{

while(m[j]!=0)j=(j+1)%l;

m[j]=data[i];

}

}

for(j=0;j

System.out.print(m[j]+" ");

System.out.println("");

return m;

}

public int BlockSearch (int data[],int target) throws ArrayIndexOutOfBoundsException{

int n=(top-1)/5+1;

int[][]m= new int [n][5];

int arr[]=Arrays.copyOf(data,top+1);

Sorting sort=new Sorting(arr);

sort.SelectionSort();

int max[]=new int[n];

int t=0;

for(int i=0;i

int j;

for (j = 0; j < 5; j++) {

m[i][j] = arr[t];

t++;

if(t>=top)break;

}

if(j==5)

max[i]=m[i][4];

else max[i]=arr[t-1];

}

for(t=n-1;t>=0&&target<=max[t];t--);

if(targetarr[arr.length-2])return -1;

Searching search=new Searching(m[t+1]);

int p=search.LinearSearch(m[t+1],target);

if(p==-1)return -1;

return 5*(t+1)+p;

}

}

08e6d02932570b6bf8d8ca2c301ed124.png

783bf0a386706842440d18cd6115e6a5.png

038a07c2fed9d1af2d19c9982d4edf12.png

2ccd7ad51a20c856a6989e5c5d6adbaa.png

36abb0c45c746e429dd6b4077d72b137.png

2b8804d96c9ce3c8a7034e32bbc9078d.png

cff2fe8f48d745dc2e748d53a557be57.png

fc31ffae96536017cc0666142f9d213c.png

测试代码

3dad961006185a44bd3b8b8e8ef559b5.png

4d4d4b89d0254ec13891c2067a8bf809.png

8bbcafc71fc38ab476c864882ca3f06b.png

afaaa01df9ef225db563e7a28e3ac52d.png

20c77e48a7284df077c044afb0afea32.png

4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)

测试实现的算法(正常,异常,边界)

提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

package cn.edu.besti.cs1923.W2312;

import java.util.Arrays;

import java.util.Scanner;

public class Sorting {

int []data;

int top;

public Sorting(int m[]){

data=m;

for(top=0;top

}

public void Input() {

final int CAPACITY = 3;

data= new int[CAPACITY];

Scanner scan = new Scanner(System.in);

int i = 0;

System.out.print("输入数组(以*作为结尾):");

while (scan.hasNextInt()) {

if (i == data.length)

data = Arrays.copyOf(data, data.length + CAPACITY);

data[i] = scan.nextInt();

i++;

}

top=i;

scan.next();

}

public void swap(int []m,int a,int b){

int temp;

temp=m[a];

m[a]=m[b];

m[b]=temp;

}

public String Print(int m[]){

String a="";

for(int i=0;i

a+=m[i]+" ";

System.out.print(m[i]+" ");

}

System.out.println("");

return a;

}

public String SelectionSort(){

int i,j;

for(i=0;i

int temp=i;

for(j=i+1;j

if(data[j]

temp=j;

}

if(temp!=i) {

swap(data, temp, i);

}

}

return Print(data);

}

public String ShellSort(){

for(int gap=top/2;gap>0;gap/=2){

for(int i=gap;i

int j=i;

while (j-gap>=0&&data[j]

swap(data,j,j-gap);

j-=gap;

}

}

}

return Print(data);

}

}

9efd4b0d13df9763b916174d6c31c34b.png

96762fabb0d3574be9a766ad344d3b77.png

a3ae33d4eaee39917301d5a64864001e.png

895bfb61f27ac9d0a221fa1301bd126c.png

5.5.编写Android程序对实现各种查找与排序算法进行测试

提交运行结果截图

推送代码到码云(选做,加分)

package com.example.searching;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

EditText s1;

EditText s2;

EditText s3;

Button a1;

Button a2;

Button a3;

Button a4;

Button a5;

Button a6;

Button a7;

Button a8;

Button a9;

int d[];

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

s1 = findViewById(R.id.editText);

s2 = findViewById(R.id.editText2);

s3 = findViewById(R.id.editText3);

a1 = findViewById(R.id.button);

a2 = findViewById(R.id.button2);

a3 = findViewById(R.id.button3);

a4 = findViewById(R.id.button4);

a5 = findViewById(R.id.button5);

a6 =findViewById(R.id.button6);

a7 = findViewById(R.id.button7);

a8 = findViewById(R.id.button8);

a9 = findViewById(R.id.button9);

a1.setOnClickListener(select);

a2.setOnClickListener(confirm);

a3.setOnClickListener(shell);

a4.setOnClickListener(linear);

a5.setOnClickListener(binary);

a6.setOnClickListener(blocking);

a7.setOnClickListener(hash);

a8.setOnClickListener(fibonacci);

a9.setOnClickListener(insert);

}

View.OnClickListener select = new View.OnClickListener() {

@Override

public void onClick(View v) {

Sorting sort=new Sorting(d);

s2.setText(sort.SelectionSort());

}

};

View.OnClickListener confirm = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b = s1.getText().toString();

String[] c = b.split(" ");

d = new int[c.length];

for(int i=0;i

{

int num = Integer.parseInt(c[i]);

d[i] = num;

}

}

};

View.OnClickListener shell = new View.OnClickListener() {

@Override

public void onClick(View v) {

Sorting sort=new Sorting(d);

s2.setText(sort.ShellSort());

}

};

View.OnClickListener linear = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.LinearSearch(d,target);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

View.OnClickListener binary = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.BinarySearch(d,0,d.length-1,target,0);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), new Sorting(d).SelectionSort(), Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

View.OnClickListener insert = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.InsertSearch(d,0,d.length,target,0);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), new Sorting(d).SelectionSort(), Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

View.OnClickListener blocking = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.BlockSearch(d,target);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), new Sorting(d).SelectionSort(), Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

View.OnClickListener hash = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.HashSearch(d,target);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), search.HashPrint(d), Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

View.OnClickListener fibonacci = new View.OnClickListener() {

@Override

public void onClick(View v) {

String b1 =s3.getText().toString();

int target = Integer.parseInt(b1);

Searching search=new Searching(d);

int position=search.FibonacciSearch(d,d.length,target);

String result;

if(position==-1)result="Fail!";

else result="Succeed!"+"The position is:"+position;

Toast.makeText(getApplicationContext(), new Sorting(d).SelectionSort(), Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();

}

};

}

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/button9"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="INSERT"

app:layout_constraintBottom_toTopOf="@+id/button6"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.904"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.984" />

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginStart="16dp"

android:layout_marginLeft="16dp"

android:layout_marginTop="64dp"

android:text="Input"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/editText"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="48dp"

android:ems="10"

android:inputType="textPersonName"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.454"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="132dp"

android:text="selection"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.268"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="44dp"

android:text="confirm"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.95"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginStart="88dp"

android:layout_marginLeft="88dp"

android:layout_marginTop="132dp"

android:text="shell"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.629"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="220dp"

android:text="Result"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.021"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/editText2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="76dp"

android:ems="10"

android:inputType="textPersonName"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.474"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.362" />

android:id="@+id/editText3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginStart="4dp"

android:layout_marginLeft="4dp"

android:layout_marginBottom="44dp"

android:ems="10"

android:inputType="textPersonName"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.515"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.557" />

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="9dp"

android:text="@android:string/search_go"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.01"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="@+id/editText3"

app:layout_constraintVertical_bias="0.026" />

android:id="@+id/button6"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="blocking"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.912"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.742" />

android:id="@+id/button8"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="160dp"

android:text="Fibonacci"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.498"

app:layout_constraintStart_toStartOf="parent" />

android:id="@+id/button5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="52dp"

android:text="binary"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.498"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.606" />

android:id="@+id/button4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="112dp"

android:text="order"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.024"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.565" />

android:id="@+id/button7"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginStart="16dp"

android:layout_marginLeft="16dp"

android:layout_marginBottom="160dp"

android:text="hash"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintStart_toStartOf="parent" />

线性查找

67d35e01e43fd87cad5340ffe08a5ba2.png

二叉查找

2d5d8fc92782bceb954f4d7f0df273b5.png

ebe033ec9d725def133b6e941eb28288.png

插值查找

cf422426d030bb65519b145f51e1114c.png

42de5c084fc571e459cf5d0da17ca40a.png

分块查找

fb8bf25d6fd4c765403c03b393d218ef.png

f84cf05eb05470e222b1bd85d6196ef7.png

哈希查找

ac68adbed4f96ad84279d9e230a5e444.png

e42ac8632164fc6ac788954455d47462.png

3.心得体会

命令行基本上已经忘得差不多了,经过这次学习又加深了印象。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值