插入排序的C++代码

插入排序的C++代码,第1张

【直接插入排序算法】void InsertSort(DataType A[], int n)

{ //采用直接插入排序的方法对数组A中的n的元素排序 DataType x//用于交换时的暂存扮氏

int i,j,k for(i=1i<ni++)

{

//找到插入的位置k:

k=i

for(j=i-1j>=0j--)

{

if(A[i]>A[j])

{

k=j+1

break

}

cout<<j<<endl

}

//

if(k==i)

{

//说明插入的位置是最后一个,不用移动位置

}

else

{

x=A[i]

//将结点后移:

for(j=ij>kj--)

{

A[j]=A[j-1]

}

A[k]=x

}

} return

} 【算法的使用例子】#include "iostream"

using namespace std

#define DataLeng 5

typedef int DataType//祥缺橘显示数据:

void printData(DataType A[], int n)

{ for(int i=0i<ni++)

{

cout<<A[i]<<" "

}

cout<<endl

return

} void main()

{ int data[5]={3,8,5,4,6}//排序前:

cout<<"<1>没有排序前的顺序是:"<<endl

printData(data,DataLeng)//排序:

InsertSort(data,DataLeng)/谨团/排序后:

cout<<"<2>排序后的顺序是:"<<endl

printData(data,DataLeng)return

}

int  Insert_sort(float*p, int  手段n, float  x )

{

int i,j

for(i=0i<ni++)

if(x<p[i])break

for(j=ij<10j++)

p[j+1]=p[j]

p[i]=x

return 埋薯谈0       

}

鉴于你没有说明参数n是什么,我就认为它是第几个弯碰数字的标号,从1开始到10结束

//你那程序太难念举改罩高前了,每个方法都物清单职责啊

public class Test6 {

//二分查找

public static int findPos(int[] a,int key) {

int start=0

int end=a.length-1

int temp=0

while(start<end){

int mid=(start+end)/2

if(key>a[mid]){

start=mid+1

temp=start

}else if(key<a[mid]){

end=mid-1

temp=end

}else {

return mid

}

}

return temp

}

public static void main(String[] args) {

int[]array={1,4,6,7,10,11,23,78}

System.out.println(findPos(array, 0))

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12362983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存